Aviex camera plugin¶
The PCCD-170170 is a large area detector (4096 x 4096) designed for use in WAXS or SAXS experiments in a vacuum environment.
The detector supports full frame, multiframe time-sliced, and streak camera modes of operation.
Used at the SWING beamline of Synchrotron SOLEIL to make timeresolved SAXS measurements together with another WAXS detector.
This Lima plugin controls an Aviex camera under linux.
It is based on the MX beamline control toolkit.
It has been tested at the Synchrotron SOLEIL facility, but has not been installed yet on a Beamline.
First, compile the Mx Library/Driverand and install it in the default path (
Start the Mx driver with:
cd /opt/mx/sbin/ ./mx start
Then, follow the generic instructions in Build and Install. If using CMake directly, add the following flag:
For the Tango server installation, refers to PyTango Device Server.
Initialisation and Capabilities¶
Implementing a new plugin for new detector is driven by the LIMA framework but the developer has some freedoms to choose which standard and specific features will be made available. This section is supposed to give you the correct information regarding how the camera is exported within the LIMA framework.
There are 2 parameters to be filled with your Lima client:
- The detector friendly name: can be any string defined by user.
- The detector database file name: this file must contains configuration parameters such as IP adress, port.
This plugin has been implemented in respect of the mandatory capabilites but with some limitations according to some programmer’s choices. We only provide here extra information for a better understanding of the capabilities for the Aviex camera.
- Max image size is : 4096 * 4096
- 16 bit unsigned type is supported
HwSync trigger type supported are:
- 1 * 1
- 2 * 2
- 4 * 4
- 8 * 8
- Binning above are typical values, but binning is not necessarily square.
Not yet implemented
No specific hardware configuration is needed.
How to use¶
Here is the list of accessible fonctions to configure and use the Aviex detector:
//-- Related to Aviex specific features void getExpMultiplier(double& exp_mult); void setExpMultiplier(double exp_mult); void getLatencyTime(double& period_time); void setLatencyTime(double period_time); void getGapMultiplier(double& gap_mult); void setGapMultiplier(double gap_mult); void getMxLibraryVersion(std::string& version); void getInternalAcqMode(std::string& acq_mode); //! Available mode : ONESHOT, MULTIFRAME, GEOMETRICAL, MEASURE_DARK, MEASURE_FLOOD_FIELD void setInternalAcqMode(const std::string& mode); void getReadoutDelayTime(double& readout_delay); void setReadoutDelayTime(double readout_delay); void getReadoutSpeed(bool& readout_speed); void setReadoutSpeed(bool readout_speed); void getInitialDelayTime(double& initial_delay); void setInitialDelayTime(double initial_delay); //! MASK_CORRECTION_BIT_POSITION = 0 //! BIAS_CORRECTION_BIT_POSITION = 1 //! DARK_CORRECTION_BIT_POSITION = 2 //! FLOOD_CORRECTION_BIT_POSITION = 3 //! GEOM_CORRECTION_BIT_POSITION = 12 void setCorrectionFlags(unsigned long);