This is a C++ library, which supports several vacuum hardware items,
from major manufacturers. The library provides basic monitoring, and
control, as well as device auto-detection. This has been tested under
Linux, but should also support windows systems. Supported devices include:
nXDS Series of vacuum pumps, manufactured by Edwards
Pfeiffer SingleGauge pressure gauge controllers
VACOM MVC pressure gauge controllers
Pfeiffer PRISMA Residual gas analysers
The library is provided as C++ source code under the GNU GPLv3.
Supported Operating Systems & compilers:
This library should work on all operating systems, but has not
been tested on anything other than linux. The program compiles
with gcc & clang
* Boost interprocess (part of boost)
* Boost date/time
* libserialport (this is not libserial)
Debian-like install of dependencies:
as admin use this command:
apt-get install libboost-date-time-dev libserialport-dev
Older debian-like systems may not have libserialport-dev
available. the debian package tracker (packages.debian.org)
should have a copy that you can compile using "dpkg-source -x"
and "dpkg-buildpackage -uc -us". This method should work on most
Finding the library
Under unix, you may need to override the library search path to
find libvacuumdevice.so, e.g. place the following in your .bash_profile
If this needs to be set, this will be evident as the program
will not run and will complain about missing libvacuumdevice.
There are several test programs in the test/ folder. These can
be used or modified to test the libvacuumdevice code, and to
see how to program using libvacuumdevice
Q: Programs dont detect any devices on the serial port, even
though they are plugged in. Rebooting seems to fix the problem
temporarily. How can I fix this?
A: Optionally, libvacuumdevice uses posix semaphore locking. If
a program does not shutdown properly, then the locks may
remain. In linux, these locks show up as files in /dev/shm/ .
Try deleting any sem.libvacuumdevoce_sp_lock* files using
Q: I'm using the library from multiple programs of my own,
but access to the serial port doesn't seem to lock? Why not?
A: Locking is disabled by default, and must be enabled before
any libvacuumdevice:: code is used, if it is to be used. Call
choosing your favourite timeout value.
This must be done from each process that wishes to respect
Q: Detecting seems to run very very slowly. What is going on?
A: I have found that sometimes closing the serial port will
hang. I do not know why. It does eventually work - rebooting
seems to be the current fix. Unloading/reloading the UART driver
might also work - haven't tried.
* Accessing a different serial port can have an effect on other
serial ports. This may be hardware specific, and it is suspected that
this has something to do with data timings.
simply contact : mycae - at - gmx.com