The New Approach to Scientific Equipment
Management
- Read article (in Russian).
While developing and improving for years our software, and implementing new
features into hardware, we found that it becomes more and more difficult to
implement such features in software. Typical tasks for implementing new
parameter include:
- extending client-server protocol
- visual interface development
- writing message handlers for visual interface
- writing validation functions for input values
These tasks slightly differ for different parameters, but in general are all
the same. The most inconvenient task is writing converters from hardware values
to real world values and back. Every value requires separate calibration
constant, which in turn should be stored somewhere and transferred by
protocol.
With time we realized that the number of different parameters types is
limited. In general, these are:
- real values (like voltage)
- integer values (like number of samples)
- boolean values (like on/off switch)
- enumerations (like Tapping, Contact and Tunnel SPM types)
- and some other types...
When we have outlined this types, it become possible to develop a general
protocol for such values description, storage, and manipulation. To avoid
writing conversion functions, we have implemented in-place conversions by
arbitrary equations, which can be set in human-readable form in variable's
description. In equations, variables substitution can be used, a number of
common mathematical and logical functions implemented.
Besides static variables, we distinguish two special entities:
- processes
- continuous process, which can be in two states - on and
off, each process should be handled by special process
handler
- stream
- a stream of data, acquired during process, among it
parameters it has number of dimensions and associated
axes
As a result of our work (which is still in process) we propose three
libraries for implementing universal variables technology:
- network interface library
- Allows easily implement network functionality in your application. Includes
Message, thread-safe Message Queue and Buffered Stream (based on WinSock 2.0
library) classes.
- universal variables implementation library
- Core functions for creating and managing universal variables lists, with
automatic dependencies update functionality.
- universal variables user interface
- "Windows Common Controls"-like library for implementing user interaction
with universal variables lists.
FemtoScan Online software is made according to this ideology. If your can't
for some reason (usually for lack of time) or don't want to write your own
process handler and user interface for your hardware, you can use FemtoScan
Online as a data processing software, and as a client side for your own server.
Converting existing software into server-side software can be done using first
two libraries (network interface and core components). Usually it takes about 6
months for experienced programmer to modify existing application.
|