NDS (Nominal Device Support) is a library that allows to write device supports for a variety of control systems (CS) by hiding the details of the chosen CS and focusing on device functionalities.
NDS provides the following features:
- organizes your device in a tree-like structure, containing one or more devices, channels, attributes (PVs), state machine, etc.
- provides the data pull mode (passive scanning on EPICS, polling on Tango) and the push mode (Interrupt on EPICS, push on Tango)
- your code uses standard C++ types and Unix EPOCH timing to communicate with the library
- on EPICS there is no need to supply separate db files (but you still can if you want)
- supplies an hierarchical state machine
- supplies a specialized data acquisition module
- guaranteed binary compatibility between minor versions allow to easily upgrade existing installations without recompiling the device support
- Online Reference
- Build doxygen reference with
make doc
. Requires doxygen and latex. The generated documentation is then found atdoc/api/html/index.html
anddoc/api/hlatex/refman.pdf
.
cmake 2.8.2+ required to run unit tests. Included in RHEL 6.6, Debian Wheezy, Ubuntu Trusty.
GCC 4.9+ is recommended because of GCC 57869.
Packages are not available yet.
mkdir build
cd build
cmake ../CMake
make install
make install
- Build NDS3 with CMake
- Build and run tests
mkdir tests/build cd tests/build cmake ../CMake -DLIBRARY_LOCATION=../../build make ./nds3tests
- Build NDS3 with CMake
- Build examples
mkdir doc/examples/build cd doc/examples/build cmake ../CMake -DLIBRARY_LOCATION=../../../build make