Development status:
New development
Information status: Updated
Repository:
http://svn.code.sf.net/p/tango-ds/code/DeviceClasses/Acquisition/2D/Jungfrau
Contact:
Class Description
Tango device server for Jungfrau detectors, using the SLS detector package.
Families: Acquisition
Key words:
Platform: Unix Like
Language: Cpp
License: GPL
Contact:
Hardware
Manufacturer: PSI
Product:
Jungfrau
Bus: TCP/UDP
Class interface
Attributes:
Name | Description |
---|---|
MonitorImage: DevULong | — |
PixelMaskImage: DevUChar | — |
PedestalG2Image: DevDouble | — |
PedestalG1Image: DevDouble | — |
PedestalG0Image: DevDouble | — |
GainMap2Image: DevDouble | — |
GainMap1Image: DevDouble | — |
GainMap0Image: DevDouble | — |
TemperatureSpectrum: DevFloat | — |
SoftwareReceiverVersionScalar: DevString | Version of the Receiver library object this Tango server is linked against. |
SoftwareKernelVersionScalar: DevString | Version of the slsDetectorPackage this Tango server is linked against. |
SoftwareClientVersionScalar: DevString | Version of the Detector library object this Tango server is linked against. |
DetectorFirmwareVersionScalar: DevString | Firmware versions of the detector modules. |
DetectorSerialNumberScalar: DevString | Serial numbers of the detector modules. |
DetectorTypeScalar: DevString | Detector type indentifier. |
StreamUpdateIntervalScalar: DevFloat | Interval after which the current image will be streamed out. Default is 500 ms. Only active if StreamDivider is set to 0. |
StreamDividerScalar: DevUShort | Every nth image will be streamed out. Default is 1, meaning every image. If 0, StreamUpdateInterval is the timeout, after which current frame is sent out. |
StreamEnabledScalar: DevBoolean | Enable/disable data streaming from receiver via ZMQ to other processes. This creates/destroys zmq streamer threads in receiver. For fast applications is might be necessary to turn this off. The servers file writer and monitoring features make use of this and will enable streaming automatically. |
MonitorGeometryCorrectionScalar: DevBoolean | Whether module and submodule gaps will be inserted to the monitor image. |
MonitorGainModeDecodingScalar: DevBoolean | Whether the pedestals will be substracted and gain modes decoded on the monitor image. |
MonitorPixelMaskScalar: DevBoolean | Whether the pixel mask will be applied on the monitor image. |
MonitorDiscardNewScalar: DevBoolean | If enabled, the monitor buffer will dicard new images instead of old ones when it`s filled. |
MonitorDividerScalar: DevUShort | Only every nth image will be copied into the monitor buffer. |
MonitorBufferSizeScalar: DevUShort | How many images the monitor buffer can keep. |
MonitorIntegrationRangeScalar: DevUShort | If set to a value >0, the set number of images will be sumed up and put into the buffer as one image. |
MonitorEnabledScalar: DevBoolean | If set, the images will be retreived through a Receiver callback and put into the monitor buffer. If this is disabled and FilewriterBasciMode is enabled, the callback is not registered which speeds up the Receiver. |
FilewriterGeometryCorrectionScalar: DevBoolean | Whether module and submodule gaps will be inserted to images written to disk if not set to FilewriterBasicMode. |
FilewriterGainModeDecodingScalar: DevBoolean | Whether the pedestals will be substracted and gain modes decoded on images written to disk if not set to FilewriterBasicMode. |
FilewriterPixelMaskScalar: DevBoolean | Whether the pixel mask will be applied on images written to disk if not set to FilewriterBasicMode. |
FilewriterBasicModeScalar: DevBoolean | If enabled, the server will not write image files itself, but leave this to the Receiver objects of the slsDetectorPackage. |
FilewriterAcquisitionIndexScalar: DevULong | Index automatically appended to the file name and increased after every run. |
FilewriterNameScalar: DevString | Prefix for the name of the image files. |
FilewriterPathScalar: DevString | Path to the folder where the image files are written into. |
FilewriterEnabledScalar: DevBoolean | No images will be written to disk if disabled. |
HeightScalar: DevUShort | Number of detector in one vertical line. |
WidthScalar: DevUShort | Number of detector in one horizontal line. |
HighVoltageScalar: DevUChar | Sets the high voltage used. Possible values are between 60V and 200V. 0 disables the high voltage. |
GainModeScalar: pogoDsl:EnumType | Dynamic switches automatically between all gain modes. ForceSwitchG1 disables gain mode 0. ForceSwitchG2 disables gain modes 0 and 1. FixG0 forces the detector to use gain mode 0 only. FixG1 forces the detector to use gain mode 1 only. FixG2 forces the detector to use gain mode 2 only. Use FixG0 with caution, for it can easily break the detector! |
TriggerStartDelayScalar: DevDouble | Delay between receiving a trigger pulse and starting the acquisition. |
TriggerModeScalar: pogoDsl:EnumType | In the internal mode NImages number of images are taken with the period set in ExposurePeriod. The value in Ntriggers is ignored. In external mode each trigger pulse starts a series of Nimages images, with the given period. Burst mode is currently not implemented. |
ExposurePeriodScalar: DevDouble | Interval between to images if in internal trigger mode. |
ExposureTimeScalar: DevDouble | Exposure time for a single image. |
NTriggersScalar: DevULong | Number of triggers for one acquisition run. |
NImagesScalar: DevULong | Number of frames per trigger. |
Commands:
Name | Description |
---|---|
ClearMonitorBufferInput: DevVoid Output: DevVoid |
Clears the monitor buffer. |
PedestalsInput: DevVoid Output: DevVoid |
Takes a series of images for each gain mode and computes pedestals from them. All series are 1000 images long and will be taken using the exposure time set. The frist series for gain mode 0 uses the regular dynamic gain mode setting with a period as short as possible (at least 1ms). For the following series for gain mode 1 and 2 the corresponding gain mode switch will be fixed and the given period will be used (but not shorter then 10ms). Please make sure there is no signal on the detector before executing this command. |
StopInput: DevVoid Output: DevVoid |
Abort detector acquisition. Internally calls the stopDetector command. |
StartInput: DevVoid Output: DevVoid |
Starts a data acquisition. Internally calls the acquire command. |
StatusInput: DevVoid Output: ConstDevString Device status |
This command gets the device status (stored in its device_status data member) and returns it to the caller. |
StateInput: DevVoid Output: State Device state |
This command gets the device state (stored in its device_state data member) and returns it to the caller. |
Pipes:
Properties:
Name | Description |
---|---|
PixelMaskPathArray of DevString | — |
GainMapPathArray of DevString | Gain map files for each module. |
ConfigurationPathDevString | Config file for Detector and Receiver objects from the slsDetectorPackage. |
DetectorIdDevLong | Detector shared memory id Default value is 0. Can be set to more values for multiple detectors.It is important only if you are controlling multiple detectors from the same pc. |
Please log in to comment.
README
### Note
Please do not update to any xxxx.xx.xx.dev0 tags. They are not releases, but tags for internal usage. Use only releases with tags such as x.x.x or x.x.x-rcx.
### Documentation ##### 5.0.0 - Latest Release Detailed documentation on the latest release can be found in the [software wiki](https://slsdetectorgroup.github.io/devdoc/index.html) and on the [official site](https://www.psi.ch/en/detectors/software).
##### Older Releases Documentation is found in the package.
### Binaries Binaries for the slsDetectorPackage are available through conda. ``` #Add conda channels conda config --add channels conda-forge conda config --add channels slsdetectorgroup conda config --set channel_priority strict
conda install slsdetlib #only shared lib and command line conda install slsdet #python bindings (includes slsdetlib) conda install slsdetgui #gui (includes qt4)
#Install specific version conda install slsdet=2020.03.02.dev0 #developer version from 3 March 2020
### Source code One can also obtain the source code from this repository and compile. ``` git clone https://github.com/slsdetectorgroup/slsDetectorPackage.git
``` #### Dependencies
Refer [this page](https://slsdetectorgroup.github.io/devdoc/dependencies.html) for dependencies.
#### Compilation
Compiling can be done in two ways. Either with the convenience script cmk.sh or directly with cmake for more control.
**1. Compile using script cmk.sh**<br>
These are mainly aimed at those not familiar with using ccmake and cmake. ```
The binaries are generated in slsDetectorPackage/build/bin directory.
Usage: ./cmk.sh [-c] [-b] [-p] [e] [t] [r] [g] [s] [u] [i] [m] [n] [-h] [z] [-d <HDF5 directory>] [-l Install directory] [-k <CMake command>] [-j <Number of threads>] -[no option]: only make -c: Clean -b: Builds/Rebuilds CMake files normal mode -p: Builds/Rebuilds Python API -h: Builds/Rebuilds Cmake files with HDF5 package -d: HDF5 Custom Directory -k: CMake command -l: Install directory -t: Build/Rebuilds only text client -r: Build/Rebuilds only receiver -g: Build/Rebuilds only gui -s: Simulator -u: Chip Test Gui -j: Number of threads to compile through -e: Debug mode -i: Builds tests -m: Manuals -n: Manuals without compiling doxygen (only rst) -z: Moench zmq processor
# get all options ./cmk.sh -?
# new build and compile in parallel: ./cmk.sh -bj5
**2. Compile without script**<br> Use cmake to create out-of-source builds, by creating a build folder parallel to source directory. This would create a debug build with address sanitizers. ```
$ mkdir build $ cd build $ cmake ../slsDetectorPackage -DCMAKE_BUILD_TYPE=Debug -DSLS_USE_SANITIZER=ON $ make -j12 #or whatever number of threads wanted
To install binaries using CMake ```
git clone --recursive https://github.com/slsdetectorgroup/slsDetectorPackage.git mkdir build && cd build cmake ../slsDetectorPackage -DCMAKE_INSTALL_PREFIX=/your/install/path make -j12 #or whatever number of cores you are using to build make install
- ### Support
- dhanya.thattil@psi.ch erik.frojdh@psi.ch
Updated:
The device class has been updated.
You can see previous version here .
27 Aug 2022, DS Admin
Updated:
The device class has been updated.
You can see previous version here .
20 Aug 2022, DS Admin
Updated:
The device class has been updated.
You can see previous version here .
13 Aug 2022, DS Admin
Updated:
The device class has been updated.
You can see previous version here .
6 Aug 2022, DS Admin
Created:
The device class has been added to catalogue.