Data acquisition framework for the Eiger detector using odin-data consisting of:
- eigerfan: a fan-out of the Eiger zeromq push/pull stream
- EigerMetaWriter: A plugin for the odin-data meta_writer application
- EigerProcessPlugin: A plugin for the odin-data FrameProcessor
- EigerFrameDecoder: A plugin for the odin-data FrameReceiver
A VSCode devcontainer is provided for simpler local development. odin-data
is
pre-installed in /odin
and there are vscode settings to build eiger-detector
against
this. A virtual environment is available at /venv
and will be the default environment.
Follow the steps below to get started.
Commands starting with >
are vscode commands and can be run with Ctrl+Shift+P
,
while commands starting with $
are bash commands to be run in a terminal (inside the
vscode devcontainer). Within the devcontainer cmake
will be available on the PATH, so
make sure vscode user settings have cmake.cmakePath
set to cmake
(the default).
-
Open the project in VSCode and re-open in devcontainer when prompted, or open manually with
> Dev Containers: Reopen in Container
-
Install the recommended extensions for the workspace (
> Extensions: Show Recommended Extensions
) -
Build eiger-detector
i.
> CMake: Delete Cache and Reconfigure
(select gcc version in dropdown)ii.
> CMake: Install
-
Install the eiger-detector python package with dev dependencies and tickit simulator
ii.
$ pip install -e './python[dev,sim]'
-
Run the dev deployment from the
deploy
directory with$ zellij -l layout.kdl
It is then possible to edit the python applications and restart, or edit the C++ applications, rebuild and restart.
To debug any of the applications in the full deployment, stop that process and run the VSCode launch config to run an equivalent process in the debugger. For example the Odin Control launch config uses the same config file as the instance in the full deployment.
- fastcs-odin: An EPICS driver to control the odin-data / eiger-detector applications
- fastcs-eiger: An EPICS driver to control Eiger detectors
- tickit-devices: A set of simulated devices, including Eiger