Skip to content
Matt Heck edited this page Feb 19, 2016 · 1 revision

RSAL

Reno Special Applications Library

PRELIMINARY INFORMATION

The Reno Special Applications Library is a test, measurement, and control library developed independently by Matt Heck and released under the MIT License. It is intended to support a wide range of scientific instruments and industrial test devices over a variety of I/O channel types and communication protocols. Written in C++11 and leveraging the Boost libraries, including Boost.ASIO, the library is multi-platform, multi-threaded, and GUI-independent. The library makes adding standardized support for new devices significantly easier, faster, and safer than rolling them from scratch. Debug builds have extra features to provide maximum feedback; Release builds have thorough optimizations to provide maximum performance.

To maximize confidence in instrument drivers, as well as to jump-start development prior to the arrival or purchase of the instruments themselves, RSAL provides the ability to write instrument simulators which talk to the drivers over a strictly narrow emulation of the communications channel they will actually use. For situations where more rapid initial development is required (such as when instruments have not yet been selected), instrument emulators can be written to simulate only the functional results of the instrument.

Instrument drivers, simulators, and emulators can all be built into the library or dynamically linked at run-time. Further, all of these can be versioned, making it possible to rapidly repeat experiments with prior driver versions to investigate questionable results.

The library additional aims to reduce acquisition and calculation errors by strictly enforcing mandatory use of both measurement units and rich timestamp information (both timestamps and resolution/error attributes of the clock) on all data acquired, and allows for complex chaining of base SI units (and others) to denote real-world compound units and allow meaningful computations on measurements with dissimilar units, where possible.

For Windows developers, the library features solid integration with Visual Studio 2015 (including the Community Edition), using no external build tools.

For Linux developers, the project has full integration with Autotools (autoconf, automake, etc.) on Linux. When mature, the intent is to provide the package to the Fedora Project, Scientific Linux, Ubuntu, and possibly other distributions.

While the library leverages cutting-edge tools and standards, the code produced by its builds is designed to run on older systems, where necessary. Materials built with the Windows version require Windows XP or later, though Windows 7 or later is recommended. Both 32-bit and 64-bit platforms are supported. Materials built for Linux require a version of gcc-c++ ("g++") with full support for the C++11 standard, and matching tools (linker, etc).

The primary open source project using RSAL is RIST, the Reno Industrial Scientific Toolkit. RIST combines RSAL with wxWidgets (formerly wxWindows) to provide a multi-platform GUI application that can talk to a wide variety of scientific instruments.

RSAL is released under the MIT License. However, your liability is clarified below.

THE RENO SPECIAL APPLICATIONS LIBRARY (HEREAFTER, "RSAL") CONSISTS OF SOFTWARE SOURCE CODE, DOCUMENTATION, AND OTHER MATERIALS OBTAINABLE THROUGH GITHUB AND OTHER MEANS. RSAL COMES WITH ABSOLUTELY NO WARRANTY OR BINDING ENDORSEMENT OF FITNESS FOR ANY PURPOSE WHATSOEVER. BY USING, MISUSING, OR NEGLIGENTLY USING RSAL, DERIVATIVE WORKS BASED ON RSAL, OR ANY OTHER PROGRAMS OR LIBRARIES LINKED TO RSAL (WHETHER OR NOT CHANGED BY YOU OR OTHER PARTIES), OR BY DIRECTING ANY PERSON, COMPANY, OR OTHER ENTITY TO TAKE ANY OF THOSE ACTIONS, YOU ACCEPT ALL DIRECT AND INDIRECT LIABILITY ASSOCIATED WITH THOSE ACTIONS. YOU ALSO ACCEPT SUCH LIABILITY FOR THE FAILURE OF ANY PERSON, COMPANY, OR OTHER ENTITY DESIGNATED BY YOU TO USE SUCH MATERIALS TO DO SO SAFELY AND CORRECTLY, UNLESS THAT PERSON, COMPANY, OR ENTITY HAS ASSUMED THAT LIABILITY IN WRITING.

Clone this wiki locally