About GDA
Main features
Main features
Main features of the GDA framework:
- Eclipse RCP graphical interface (there is a Swing interface that is being phased out)
- Embedded Jython interpreter for scripting and command-line control
- Powerful and flexible scanning mechanism
- Control system agnostic: internal interfaces in the code enable the the control system(s) that operate individual pieces of hardware to be abstracted from the rest of the code.
- Diffcalc for diffractometer control in reciprical lattice space.
- Distributed design: multiple object servers representing hardware communicating with multiple clients via CORBA
- Role-based access control to restrict users operations on hardware where necessary
- Baton control: multiple client GUIs may run at the same time on each beamline with control managed by a baton passed between them.
- Nexus data file format. Other formats are used and may be implemented, but the code is optimised for the Nexus format.
- Nexus data file viewer within the GDA client.
- Online data analysis and visualisation
Main features of the GDA code management:
- Code organised into Eclipse plugins. The open-sourced 'core' plugins are not facility- or hardware-specific.
- Heavy use of internal interfaces to abstract hardware and control-system specific code from the rest of the framework
- Configuration using the Spring framework
- Simulations of all hardware types for unit testing and 'offline' development
Requirements
Requirements
The GDA is developed using the Eclipse IDE and is mainly tested and used on RedHat Enterprise Linux 5. It is also developed and used with Windows and Ubuntu.
Software requirements:
- Java 6
- Python 2.5 or higher
- Eclipse 3.5 or higher
Technologies
Technologies
The GDA is written in Java. Other technologies used in the framework are:
- Jython 2.5 - embedded scripting engine
- Python 2.5 - platform independent startup and deployment scripts
- Eclipse 3.5 - the code is organised into Eclipse plugins and the UI is Eclipse RCP
- Swing - the 'old' GDA GUI
- JIDE - plugin framework for the Swing GUI
- Ant 1.7 - deployment and build
- Jenkins - continuous integration
- Spring Framework - configuration
- CORBA - distributed object services for performance
Developmental status
Developmental status
The GDA is in use on all but one of the beamlines at Diamond. Most recent beamlines are using the Eclipse RCP client and older beamlines are converting from the legacy Swing client.
The code is orgaised into Eclipse plugins. The core set of plugins, which is not Diamond specific, form the open source release.
We are working towards an external Git repository
The GDA is also installed on the Dubble beamline at the ESRF.
Detector integration
Detector integration
A list of some of the detectors which the GDA is used with
| ADSC 315 | CCD | 4096x4096 |
| Rapid II | Gas Detector | 4096x4096 |
| XPress | Germanium Strip | 9x4096 |
| Vortex | Silicon Drift | > 1024 |
| MAR 345 | Image Plate | |
| Oxford Diffraction Ruby/Onyx | CCD | 2048x2048 |
| Pilatus 100k | CCD | 487x195 |
| MAR 300 | CCC | |
| Mythen II | Silicon strip | 18x1280 |
