From 7df3ea38658b999ca7ed31bc171ca4df4ce0d48d Mon Sep 17 00:00:00 2001
From: rivers
Date: Fri, 30 Jan 2009 20:53:40 +0000
Subject: [PATCH] Changes for R1-4; hardware triggers and I/O; color support
git-svn-id: https://subversion.xor.aps.anl.gov/synApps/areaDetector/trunk@8316 dc6c5ff5-0b8b-c028-a01f-ffb33f00fc8b
---
documentation/prosilicaDoc.html | 393 +++++++++++++++++++++++++++++++-
1 file changed, 382 insertions(+), 11 deletions(-)
diff --git a/documentation/prosilicaDoc.html b/documentation/prosilicaDoc.html
index 403851d..8f4efb8 100755
--- a/documentation/prosilicaDoc.html
+++ b/documentation/prosilicaDoc.html
@@ -7,7 +7,7 @@
areaDetector Prosilica driver
- September 20, 2008
+ January 30, 2009
Mark Rivers
@@ -28,11 +28,11 @@
This is a driver for Gigabit Ethernet and Firewire cameras from
Prosilica. It inherits from ADDriver and implements nearly all of the parameters
in ADStdDriverParams.h. It also implements a number of parameters that are specific
- to the Prosilica cameras. The driver is currently only supported under Windows (EPICS
- win32-x86 architecture) because the vendor library is provided as a Windows DLL.
- The vendor library provided by Prosilica does callbacks to a user-supplied function
- each time there is a new frame. Thus, the driver does not need to create a thread
- itself for callbacks.
+ to the Prosilica cameras. The driver is only supported under Windows (EPICS win32-x86
+ architecture) and Linux because the vendor library is only provided as a pre-built
+ binary for those operating systems. The vendor library provided by Prosilica does
+ callbacks to a user-supplied function each time there is a new frame. Thus, the
+ driver does not need to create a thread itself for callbacks.
The vendor library supports saving individual frames as TIFF files, and this is
@@ -54,8 +54,8 @@
Software (single software trigger)
- The Prosilica supports additional hardware timing signals that may be supported
- in a future release.
+ The Prosilica supports hardware timing input and output signals that are supported
+ in the driver.
The ADFileFormat choices for the Prosilica are:
@@ -65,6 +65,25 @@
Invalid (this menu item is defined only because MEDM will not display a menu widget
with only 1 choice)
+
+ The ADDataType choices for the Prosilica are:
+
+
+ - NDUInt8 (8-bit data)
+ - NDUInt16 (12 or 16 bit data)
+
+
+ The ADColorMode choices for the Prosilica are:
+
+
+ - NDColorModeMono (monochromatic data)
+ - NDColorModeBayer (raw Bayer data)
+ - NDColorModeRGB1 (RGB1 data)
+
+
+ The color Prosilica cameras are also capable of various YUV color formats but these
+ are not supported in the driver. They may be added in a future release.
+
The Prosilica driver implements the following parameters in addition to those in
ADStdDriverParams.h:
@@ -91,6 +110,357 @@
EPICS record type |
+
+ |
+ Trigger and I/O Control |
+
+
+ |
+ PSSyncIn1Level |
+
+ asynInt32 |
+
+ r/o |
+
+ The level of the Sync In 1 signal |
+
+ PS_SYNC_IN_1_LEVEL |
+
+ $(P)$(R)SyncIn1Level_RBV |
+
+ bi |
+
+
+ |
+ PSSyncIn2Level |
+
+ asynInt32 |
+
+ r/o |
+
+ The level of the Sync In 2 signal |
+
+ PS_SYNC_IN_2_LEVEL |
+
+ $(P)$(R)SyncIn2Level_RBV |
+
+ bi |
+
+
+ |
+ PSSyncOut1Mode |
+
+ asynInt32 |
+
+ r/w |
+
+ The mode of the Sync Out 1 signal. Allowed values are:
+
+ GPO (general purpose output)
+
+ AcqTrigReady
+
+ FrameTrigReady
+
+ FrameTrigger
+
+ Exposing
+
+ FrameReadout
+
+ Imaging
+
+ Acquiring
+
+ SyncIn1
+
+ SyncIn2
+
+ SyncIn3
+
+ SyncIn4
+
+ Strobe1
+
+ Strobe2
+
+ Strobe3
+
+ Strobe4
+
+ |
+
+ PS_SYNC_OUT_1_MODE |
+
+ $(P)$(R)SyncOut1Mode
+
+ $(P)$(R)SyncOut1Mode_RBV
+ |
+
+ mbbo
+
+ mbbi
+ |
+
+
+ |
+ PSSyncOut1Level |
+
+ asynInt32 |
+
+ r/w |
+
+ The level of the Sync Out 1 signal. This is only programmable when SyncOut1Mode=GPO. |
+
+ PS_SYNC_OUT_1_LEVEL |
+
+ $(P)$(R)SyncOut1Level
+ $(P)$(R)SyncOut1Level_RBV |
+
+ bo
+ bi |
+
+
+ |
+ PSSyncOut1Invert |
+
+ asynInt32 |
+
+ r/w |
+
+ Flag to invert the Sync Out 1 signal. |
+
+ PS_SYNC_OUT_1_INVERT |
+
+ $(P)$(R)SyncOut1Invert
+ $(P)$(R)SyncOut1Invert_RBV |
+
+ bo
+ bi |
+
+
+ |
+ PSSyncOut2Mode |
+
+ asynInt32 |
+
+ r/w |
+
+ The mode of the Sync Out 2 signal. Allowed values are the same as for PSSyncOut1Mode.
+ |
+
+ PS_SYNC_OUT_2_MODE |
+
+ $(P)$(R)SyncOut2Mode
+
+ $(P)$(R)SyncOut2Mode_RBV
+ |
+
+ mbbo
+
+ mbbi
+ |
+
+
+ |
+ PSSyncOut2Level |
+
+ asynInt32 |
+
+ r/w |
+
+ The level of the Sync Out 2 signal. This is only programmable when SyncOut2Mode=GPO. |
+
+ PS_SYNC_OUT_2_LEVEL |
+
+ $(P)$(R)SyncOut2Level
+ $(P)$(R)SyncOut1Level_RBV |
+
+ bo
+ bi |
+
+
+ |
+ PSSyncOut2Invert |
+
+ asynInt32 |
+
+ r/w |
+
+ Flag to invert the Sync Out 2 signal. |
+
+ PS_SYNC_OUT_2_INVERT |
+
+ $(P)$(R)SyncOut2Invert
+ $(P)$(R)SyncOut2Invert_RBV |
+
+ bo
+ bi |
+
+
+ |
+ PSSyncOut3Mode |
+
+ asynInt32 |
+
+ r/w |
+
+ The mode of the Sync Out 3 signal. Allowed values are the same as for PSSyncOut1Mode.
+ |
+
+ PS_SYNC_OUT_3_MODE |
+
+ $(P)$(R)SyncOut3Mode
+
+ $(P)$(R)SyncOut3Mode_RBV
+ |
+
+ mbbo
+
+ mbbi
+ |
+
+
+ |
+ PSSyncOut3Level |
+
+ asynInt32 |
+
+ r/w |
+
+ The level of the Sync Out 3 signal. This is only programmable when SyncOut3Mode=GPO. |
+
+ PS_SYNC_OUT_3_LEVEL |
+
+ $(P)$(R)SyncOut3Level
+ $(P)$(R)SyncOut3Level_RBV |
+
+ bo
+ bi |
+
+
+ |
+ PSSyncOut3Invert |
+
+ asynInt32 |
+
+ r/w |
+
+ Flag to invert the Sync Out 3 signal. |
+
+ PS_SYNC_OUT_3_INVERT |
+
+ $(P)$(R)SyncOut3Invert
+ $(P)$(R)SyncOut3Invert_RBV |
+
+ bo
+ bi |
+
+
+ |
+ PSStrobe1Mode |
+
+ asynInt32 |
+
+ r/w |
+
+ The mode of the Strobe 1 signal. The Strobe signals are based on the following values,
+ but allow for changing the delay and width relative to the underlying value. Any
+ of the outputs can be set to the Stobe1 value, rather than the raw values of these
+ signals. Allowed values are:
+
+ AcqTrigReady
+
+ FrameTrigReady
+
+ FrameTrigger
+
+ Exposing
+
+ FrameReadout
+
+ Acquiring
+
+ SyncIn1
+
+ SyncIn2
+
+ SyncIn3
+
+ SyncIn4
+
+ |
+
+ PS_STROBE_1_MODE |
+
+ $(P)$(R)Strobe1Mode
+
+ $(P)$(R)Strobe1Mode_RBV
+ |
+
+ mbbo
+
+ mbbi
+ |
+
+
+ |
+ PSStrobe1CtlDuration |
+
+ asynInt32 |
+
+ r/w |
+
+ Flag to allow controlling the strobe duration. |
+
+ PS_STROBE_1_CTL_DURATION |
+
+ $(P)$(R)Strobe1CtlDuration
+ $(P)$(R)Strobe1CtlDuration_RBV |
+
+ bo
+ bi |
+
+
+ |
+ PSStrobe1Duration |
+
+ asynFloat64 |
+
+ r/w |
+
+ The strobe duration if PSStrobe1CtlDuration is On. |
+
+ PS_STROBE_1_DURATION |
+
+ $(P)$(R)Strobe1Duration
+ $(P)$(R)Strobe1Duration_RBV |
+
+ ao
+ ai |
+
+
+ |
+ PSStrobe1Delay |
+
+ asynFloat64 |
+
+ r/w |
+
+ The strobe delay relative to the underlying signal that the strobe is based on. |
+
+ PS_STROBE_1_DELAY |
+
+ $(P)$(R)Strobe1Delay
+ $(P)$(R)Strobe1Delay_RBV |
+
+ ao
+ ai |
+
+
+ |
+ Statistics Information |
+
|
PSReadStatistics |
@@ -311,11 +681,12 @@
Future enhancements
- The driver does not currently support color. This will be added in the near future.
+ Work is needed on connection management. If the camera is unplugged or powered off
+ when the areaDetector driver is running it does not gracefully recover.
- Work is needed on connection management. If the camera is unplugged or powered off
- which the areaDetector driver is running it does not gracefully recover.
+ The Linux driver currently requires some modifications to EPICS base. This should
+ be resolved either by modifying base or with changes from Prosilica for their driver.