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.htmlanddoc/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