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 reciprocal 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.
The GDA is developed using the Eclipse IDE and is mainly tested and used on Red Hat Enterprise Linux 5. It is also developed and used with Windows and Ubuntu.
- Java 6
- Python 2.5 or higher
- Eclipse 3.5 or higher
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
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 organised into Eclipse plugins. The core set of plugins, which are not Diamond specific, forms the open source release. The core is fully functioning and includes an example beamline configuration.
As of release 8.26 the core code is publically available .
The GDA is also installed on the Dubble beamline at the ESRF.
A list of some of the detectors which the GDA is used with
|Rapid II||Gas Detector||4096x4096|
|Vortex||Silicon Drift||> 1024|
|MAR 345||Image Plate|
|Oxford Diffraction Ruby/Onyx||CCD||2048x2048|
|Pilatus||Pixel array detector (PAD)|
|Mythen II||Silicon strip||18x1280|