The data acquisition systems and (more in general) the industrial applications developed at eNTiDi are strictly dependent to the hardware over which they must run. As such, the technologies used are greatly varied. The approach used can span from a Lua script running on a embedded device with a custom Linux kernel to a bloated LabVIEW application installed on an industrial PC.
An attempt to provide a sort of standardization for leak detection systems is provided by the Gleaker project. The final result should work on a multicore PC as well as on an embedded (intended as a RaspberryPi or similar) device.
Usually the programs are based (when possible) on a constellation of multiplatform libraries grouped under the name of GTK+. Multiplatform means the code can be executed on different operating system; for example the bare GTK+ libraries work under all the GNU/Linux distributions and on all the UNIX *BSD (FreeBSD, OpenBSD, NetBSD etc...), on MacOS/X, OpenSolaris and on win32 platforms, that is from Windows 2000 or above, including Windows XP, Vista, Windows 7 and 8. The GTK+ libraries are the foundation of some of the most known multiplatform programs, such as the Firefox web browser, the thunderbird email client, the inkscape vector graphics editor and the GIMP image manipulation program, the latter being the project from which the GTK+ have born.
When feasible other open source projects are also used. Most of them are built around the same stack, just to keep low the number of dependencies on the final project. The following list contains the ones used more often (description excerpted from their home pages):
- A data abstraction layer. It can manage data stored in databases and can be used by non GNOME applications, it depends on the GLib (and integrates with it), and LibXML.
- A powerful, fast, lightweight, embeddable scripting language. It combines simple procedural syntax with powerful data description constructs based on associative arrays and extensible semantics. Lua is dynamically typed, runs by interpreting bytecode for a register-based virtual machine, and has automatic memory management with incremental garbage collection, making it ideal for configuration, scripting, and rapid prototyping.
- GOffice is a library of document-centric objects and utilities building on top of GLib and GTK+ and used by software such as Gnumeric.
- A collection of drivers for a variety of common data acquisition plug-in boards. The drivers are implemented as a core Linux kernel module providing common functionality and individual low-level driver modules.
- A user-space library that provides a developer-friendly interface to Comedi devices.