Experiment Description Language
   HOME

TheInfoList



OR:

fsc2 is a program running under
Linux Linux ( ) is a family of open source Unix-like operating systems based on the Linux kernel, an kernel (operating system), operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically package manager, pac ...
for controlling
spectrometers A spectrometer () is a scientific instrument used to separate and measure Spectrum, spectral components of a physical phenomenon. Spectrometer is a broad term often used to describe instruments that measure a continuous variable of a phenomeno ...
. 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 itself. * Devices should be exchangeable and support for new devices should not necessitate any changes of the basic program. * Users doing just standard experiments should only need to interact with a simple
graphical user interface A graphical user interface, or GUI, is a form of user interface that allows user (computing), users to human–computer interaction, interact with electronic devices through Graphics, graphical icon (computing), icons and visual indicators such ...
. This flexibility was achieved by making the program an
interpreter Interpreting is translation from a spoken or signed language into another language, usually in real time to facilitate live communication. It is distinguished from the translation of a written text, which can be more deliberative and make use o ...
for a rather easy to learn but powerful enough
scripting language In computing, a script is a relatively short and simple set of instructions that typically automation, automate an otherwise manual process. The act of writing a script is called scripting. A scripting language or script language is a programming ...
called Experiment Description Language (EDL) and employing a strictly modular approach to the handling of devices. This allows users to set up a new experiment or change an already existing one 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 Perl is a high-level, general-purpose, interpreted, dynamic programming language. Though Perl is not officially an acronym, there are various backronyms in use, including "Practical Extraction and Reporting Language". Perl was developed ...
script (included in the package), thus allowing it to be used immediately also by users not acquainted at all with the EDL language.


Major features

* The EDL language used to describe experiments is similar to other medium to high level languages, borrowing from e.g.
MatLab MATLAB (an abbreviation of "MATrix LABoratory") is a proprietary multi-paradigm programming language and numeric computing environment developed by MathWorks. MATLAB allows matrix manipulations, plotting of functions and data, implementat ...
, Fortran, C and
Perl Perl is a high-level, general-purpose, interpreted, dynamic programming language. Though Perl is not officially an acronym, there are various backronyms in use, including "Practical Extraction and Reporting Language". Perl was developed ...
etc. It comes with a lot of functions for handling, displaying and saving of data 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. * 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 e.g. fetch measured data. This allows 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 for a GUI 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 A web server is computer software and underlying Computer hardware, hardware that accepts requests via Hypertext Transfer Protocol, HTTP (the network protocol created to distribute web content) or its secure variant HTTPS. A user agent, co ...
(only running on user demand) that allows to remotely monitor the state of the experiment. * Currently fsc2 can control devices that are either connected via the serial ports, the
GPIB Glycoprotein Ib (GPIb), also known as CD42, is a component of the GPIb-V-IX complex on platelets. The GPIb-V-IX complex binds von Willebrand factor, allowing platelet adhesion and platelet plug formation at sites of vascular injury. Glycoprotei ...
bus,
LAN Lan or LAN may refer to: Science and technology * Local asymptotic normality, a fundamental property of regular models in statistics * Longitude of the ascending node, one of the orbital elements used to specify the orbit of an object in space * ...
,
USB Universal Serial Bus (USB) is an industry standard, developed by USB Implementers Forum (USB-IF), for digital data transmission and power delivery between many types of electronics. It specifies the architecture, in particular the physical ...
, the RULBUS (Rijksuniversiteit Leiden BUS) or are realized as
PCI PCI may refer to: Business and economics * Payment card industry, businesses associated with debit, credit, and other payment cards ** Payment Card Industry Data Security Standard, a set of security requirements for credit card processors * Prov ...
or ISA cards (Linux drivers for these cards are supplied with the package as far as possible). * 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 70 modules for quite a range of devices are already part of the package and can also be used as a starting point for developing modules for new devices. * fsc2 is well documented; the documentation with more than 350 pages in
HTML Hypertext Markup Language (HTML) is the standard markup language for documents designed to be displayed in a web browser. It defines the content and structure of web content. It is often assisted by technologies such as Cascading Style Sheets ( ...
,
info Info is shorthand for "information Information is an Abstraction, abstract concept that refers to something which has the power Communication, to inform. At the most fundamental level, it pertains to the Interpretation (philosophy), interpr ...
,
PostScript PostScript (PS) is a page description language and dynamically typed, stack-based programming language. It is most commonly used in the electronic publishing and desktop publishing realm, but as a Turing complete programming language, it c ...
and
PDF Portable document format (PDF), standardized as ISO 32000, is a file format developed by Adobe Inc., Adobe in 1992 to present documents, including text formatting and images, in a manner independent of application software, computer hardware, ...
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 etc. * fsc2 has been extensively tested and is currently used for controlling quite a number of EPR spectrometers as well as Optical Single Molecule and Raman spectrometers, 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 General Public License The GNU General Public Licenses (GNU GPL or simply GPL) are a series of widely used free software licenses, or ''copyleft'' licenses, that guarantee end users the freedom to run, study, share, or modify the software. The GPL was the first ...
(GPL), so they can be adapted or extended to fit whatever requirements there are without any restrictions (except, obviously, that you're not allowed to just grab the code and use it in a proprietary, closed source product)


Sources

{{Dual, source=http://users.physik.fu-berlin.de/~jtt/, sourcepath=http://users.physik.fu-berlin.de/~jtt/fsc2.phtml, sourcearticle=fsc2, date=June 2, 2009


External links


fsc2 homepage


Data analysis software