About GDA


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
  • 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
  • Continuous integration
  • Simulations of all hardware types for unit testing and 'offline' development
  • Unit testing of Java and Jython code

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
  • Jython 2.5
  • Python 2.5 or higher
  • Eclipse 3.5 or higher

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 GDA is moving towards an Eclipse RCP GUI (Eclipse is also used as the development IDE)
  • Swing - the 'old' GDA GUI
  • JIDE - plugin framework for the Swing GUI
  • Ant 1.7 - deployment and build
  • Hudson - continuous integration
  • Spring Framework - configuration
  • CORBA - distributed object services for performance

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 using the legacy Swing client.

The code is being refactored to the Eclipse plugin framework. It is now at the stage where there is a working core which is not Diamond specific. It is this core which forms the first open source release (8.0).

The GDA is also installed on the Dubble beamline at the ESRF.


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