1. mycae_gmx
  2. libvacuumdevice

Overview

HTTPS SSH
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

Dependencies:
	* 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
	Debian-like systems

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
	
	LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/path/to/libvacuumdeviceso/

	If this needs to be set, this will be evident as the program
	will not run and will complain about missing libvacuumdevice.


Testing functionality:
	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

Troubleshooting:
	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
	   this command:
		rm /dev/shm/sem.libvacuumdevice* 

	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
	   libvacuumdevice::Device::useMutexLocking(true,LOCK_TIMEOUT_SECONDS)
	   choosing your favourite timeout value. 
	   This must be done from each process that wishes to respect
	   locking.

	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.

Known Bugs:
	* 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. 


Reporting bugs:
	simply contact :  mycae - at - gmx.com