The New Approach to Scientific Equipment Management
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.
For pricing options contact us at sales@nanoscopy.net |