fsc2 2.3.17

A program running under Linux for controlling spectrometers.
fsc2 is a program running under Linux for controlling spectrometers. Programs for remote control of spectrometers usually are home-written and often restricted to doing a certain set of experiments with only a fixed set of devices. In contrast, fsc2 is much more flexible because it was written with three main aims:

- It should be easy for the user to set up a new experiment without having to change the program at all.
- Devices should be exchangeable and support for new devices should not necessitate changes of the basic program.
- Users doing just standard experiments should only need to interact with a simple graphical user interface.

This flexibility has been achieved by making the program an interpreter for a rather easy to learn but powerful enough scripting language (EDL, Experiment Description Language) and employing a strictly modular approach to the handling of devices.

This allows to set up a new experiment or change an already existing one fast and easily without requiring any detailed knowledge of the internals of fsc2 or how exactly devices are controlled by the computer - everything required is to become acquainted with the EDL scripting language.

Moreover, an already working script for an experiment can be swiftly converted to display a graphical user interface for entering the experimental parameters by adding just a few extra lines and converting it via a Perl script (included in the package), thus allowing it to be used also by those not acquainted with the EDL language.

Main features:

  • The EDL language used to describe experiments is similar to other medium to high level languages, borrowing from e.g. MathLab, Fortran, C and Perl etc. It comes with a lot of functions for data handling, displaying and saving in completely user defined ways. Thus writing a description for a new experiment or adapting an already existing EDL script won't be difficult for anyone remotely acquainted with one of the above mentioned programming languages. The online documentation has a chapter with an introduction to writing EDL scripts.
  • Devices are not "hard-coded" into fsc2. Instead, they are dealt with by modules that get loaded on demand (a single instruction in an EDL script). For each sort of devices a set of EDL functions exists to set up and control the device and fetch measured data. This allows e.g. to employ a different device with similar functionality by often just changing a single line in an EDL script.
  • fsc2 allows other programs to send it EDL scripts for execution. Thus one may write scripts for standard experiments that in turn automatically create EDL scripts from user input, for example via a graphical user interface. fsc2 comes with a tool that automatically generates such scripts from slightly modified EDL programs. Once such a script has been created, "normal" users don't have to know how to write or change EDL programs, thus retaining all the convenience of the traditional type of programs but without sacrificing any of fsc2's flexibility.
  • fsc2 comes with a simple built-in web server (only running on user demand) that allows to remotely monitor the state of an experiment.
  • Currently fsc2 can control devices that are either connected via the serial ports, the GPIB bus, the RULBUS (Rijksuniversiteit Leiden BUS) or are realized as PCI or ISA cards (Linux drivers for these cards are supplied with the package as far as possible). Support for devices controlled via the LAN is implemented but still needs extensive testing.
  • Writing new device modules (or adapting existing ones for a new device) shouldn't be too difficult for anyone having some experience with writing programs in C. More than 50 modules for quite a range of devices are already part of the package and can be used as a starting point for developing modules for new devices. The documentation has a whole chapter on how to write new modules.
  • fsc2 is well-documented, a more than 300 page documentation in HTML, info, PostScript and PDF format is part of the package, covering all aspects of fsc2, i.e. the graphical interface, the EDL language, device functions and the writing of new device modules.
  • fsc2 has been extensively tested and is currently used for controlling more than ten EPR spectrometers as well as an Optical Single Molecule and a Raman spectrometer, using a broad range of different devices and experimental techniques.
  • The complete sources for the program and all device modules (as well as several Linux device drivers) are available under the GNU Public License (GPL), so they can be adapted or extended to fit whatever requirements there are without any restrictions.

last updated on:
October 5th, 2009, 22:57 GMT
license type:
GPL (GNU General Public License) 
developed by:
Jens Thoms Torring
ROOT \ Science
Download Button

In a hurry? Add it to your Download Basket!

user rating 18



Rate it!
What's New in This Release:
  • Support for a new device (Bruker BVT3000 Variable Temperature Unit) was added, and a number of bugs got fixed.
read full changelog

Add your review!