Versions

Russell Taylor edited this page Mar 30, 2015 · 5 revisions

There are major and minor version numbers associated with each release of VRPN. A difference in major version number indicates that the network-level interface (the data on the wire) has changed; versions with different major version numbers will not work together. A difference in minor version numbers indicates a change in device semantics, bug fixes, or any new features that don't affect the network-layer interface. Two systems with different minor version numbers should work together; although perhaps one will not implement all the features requested by the other.

7:33:

  • *ftr Added YEI 3Space Wireless Sensor driver
  • ftr Added acceleration report to YEI trackers, and fixed axis orientation
  • *bug Fixed race condition on UDP connection for some Windows machines
  • *ftr Updated MotionNode tracker from Luke Tokheim
  • bug Reduced latency on some HID devices by reading all reports, not just one
  • bug Fixed htond() declaration to work with newest Windows compilerss
  • ftr Added boolean "OR" to HidAcceptor from Ryan Pavlik
  • bug Fixed parsing of vrpn.cfg from other locales
  • ftr New "loopback:" connection that doesn't use the network (currently doesn't log)
  • *ftr Added OSVRHackerDevKit driver from Kevin Godby
  • *ftr Modified TCP listening to happen only on the interface to be called so Windows doesn't throw a security dialog on loopback (Kevin Godby)
  • bug Small memory leaks and thread code fixes turned up by Valgrind.
  • bug Fixing various issues discovered by static code analysis.
  • ftr Improvements to DirectX and WindowsSDK finding and loading by Ryan Pavlik

7:32:

  • *ftr Added YEI 3Space Sensor driver
  • *ftr Added Retrolink GameCube driver
  • *ftr Added CH Products Fighterstick driver from Thomas Lerman
  • *ftr SpaceMouseWireless driver from Matthieu Ruffat (partially working)
  • ftr Added limit-switch detection at buttons to IDEA drive
  • ftr Additional WiiMote support from Ryan Pavlik
  • ftr Working on making VRPN more thread-safe (work in progress)
  • ftr Enabled inclusion of on Windows as an option
  • ftr Code reformatting by Ryan Pavlik
  • bug Lots of code cleanup by Ryan Pavlik
  • bug Handles multiple queued messages from 3DConnexion devices, reducing latency
  • bug Added fixes from Jan Ciger to Razer Hydra and Flock of Birds
  • bug Fixing things discovered by static analysis testing

7:31:

  • bug Patch from Jan Ciger to build on VS2012.
  • ftr 3DConnexion SpacePilot support, courtesy of @bilke on GitHub.
  • ftr Only make JsonNet report tracker changes on demand.
  • *ftr Razer Hydra support.
  • ftr Updated Phasespace driver.
  • bug Fixed crash bug when attempting to overwrite an existing log file.
  • *ftr Joystick devices: Contour ShuttleXpress, Futaba InterLink Elite, Griffin PowerMate, Logitech Extreme 3D Pro, Saitek ST290 Pro, Microsoft SideWinder Precision 2, Microsoft SideWinder, Microsoft Xbox S (raw controller on all O/S), Microsoft Xbox 360 (raw controller on all O/S), Afterglow Ax1 For Xbox 360 (raw controller on all O/S), 3DConnexion Spacemouse Pro.
  • bug Fixed vrpn_Poser's relative motion command.
  • *ftr "One-Euro" tracker filter, a cheap and easy filter for pos/orient.
  • ftr WinTracker III driver.
  • ftr Button devices now have an opening message telling how many buttons they have.
  • ftr Liberty HS tracker
  • ftr Haydon-Kerk IDEA linear position control units
  • ftr Biosciences Tools thermal control unit

7:30:

  • bug Got the PHANToM server compiling on SGI Irix 6.5 with GHOST 3.1.
  • bug Modified the LUDL stage control interface in USB to not hang.
  • ftr Switched from Visual Studio 2005 to Visual Studio 2008 project files.
  • *ftr Added serial-port GPS driver from Alex Hill in Blair MacIntyre's group at Georgia Tech.
  • *ftr Added Viewpoint eye tracker submitted by David Borland.
  • *ftr Added Qt-based GUI server for VRPN submitted by David Borland.
  • *ftr zSight tracker driver submitted by David Borland.
  • bug Fixes to the IsoTrack driver submitted by Charles Owen from MSU.
  • bug Semaphores and multi-threading fixed on OSX.
  • bug Semaphores and multi-threading fixed on OSX.
  • bug Cleaned up the UDP request code so it ignores malformed packets and prints out an error message telling where they are coming from.
  • ftr Adds support for National Instruments NidaqMX library.
  • ftr Added interface to USB devices through LibUSB (LUDL XY stage).
  • bug Improved HID device support (updates by Ryan Pavlik).
  • *ftr Razer Hydra game controller driver added by Ryan Pavlik.
  • ftr New cleaner classes to handle buffer/unbuffer from Ryan Pavlik.
  • *bug Created default Windows install directory that works on all versions.

7:29:

  • *ftr Switched from architecture-specific HID device code to using HIDAPI for all architectures. Pulled this project in as a submodule within VRPN so that it does not have to be found separately.
  • *ftr Added Qt-GUI-based server that you can configure using an XML file to provide input to a VRPN application (David Borland).
  • *ftr Novint Falcon support added (Alex Kohlmeyer).
  • *ftr Android application that runs a VRPN server provided by UNC Comp 523 class members Eric Boren, Duncan Lewis, Ted Driggs, and Kristen Janick.
  • *ftr Android support through a JSON interface added by Philippe Crassous.
  • *ftr Support Gametrak 2 device and PNI SpacePoint 3DOF under HID framework (Jan Ciger).
  • ftr Lots of CMake improvements added by Ryan Pavlik.
  • ftr Added support for wireless-type 5DT gloves and USB gloves (Ryan Pavlik).
  • ftr Pulled quatlib into VRPN proper, rather than having it sit to the side.
  • ftr Java bindings built and installed through CMake (Ryan Pavlik)
  • ftr Added support for non-HID USB devices through LIBUSB.
  • ftr WiiMote Open/reconnect is threaded and now includes additional buttons from the device (Johannes Zarl).
  • ftr Add support for 3DOF marker in DTtrack driver (Sebastian Zeller).
  • bug Fixed Python wrappers by adding correct preprocessor definitions to SWIG in the CMakeLists file (Juan Sebastian Casallas).
  • bug Lots of code cleanup and architecture generalization by Ryan Pavlik.
  • bug Fixed problem with some HID devices (like XKeys) not opening on Windows through HIDAPI by pointing at a patched version of HIDAPI in the submodules link.
  • bug Rewrote XKeys code to work when the packets are fragmented to the maximum USB packet size, which happens under HIDAPI on Linux.
  • bug Guarded some definitions so that VRPN compiles under MinGW (turn off Phantom and DirectShow in CMake configuration).
  • bug Adjusted code to get rid of a number of compiler warnings on the mac.
  • bug Fixed parser for DreamCheeky that was reading past then end of the buffer.

7:28:

  • bug Better way to scale PhaseSpace output (Luv Kohli).
  • bug Fixed bug in CMake that made it not find vrpn.cfg.

7:27:

  • bug Modified PhaseSpace to report in meters, rather than MM (Luv Kohli).
  • bug Added fix suggested by William Sherman to make Flock syncs work better.
  • *ftr Added patches from Jean Simard that enable building Phantom on Linux and using multiple Phantoms in the same server.
  • ftr Added patch from Johannes Zarl to enable options for the WiiMote.
  • *ftr Merged Novint Falcon driver from Axel Kohlmeyer.
  • bug Fix by Charles Owen to enable two sensors and fix boresight on Isotrack.
  • ftr Lots of CMake improvements by Ryan Pavlik.
  • bug Patch from Kurt Achatz for the DTrack tracker driver.
  • ftr Updates to Hillcrest Labs Freespace drivers from Matt Liberty.
  • ftr Phantom on Linux patches from Ryan Pavlik.
  • ftr Patch from Antoine Vanel to make Phantom server compile better.
  • *ftr License terms changed to protect all contributors.
  • ftr Added Wii head tracker from Ryan Pavlik
  • *ftr Moved Quatlib inside VRPN library, so it all comes as one repository.
  • ftr Intersense code compiles against the latest version of library (Andrew Roth).
  • ftr vrpn_FunctionGenerator from David Marshburn expands vrpn_Analog_Output.
  • bug Fix for Python build on 64-bit from Ryan Pavlik.
  • bug Fix for vrpn_Analog Python bindings from Jeffrey Esquivel Sibaja.
  • ftr Force field effects mixed in gradually by Axel Kohlmeyer.
  • bug Added '-fPIC' option from Sheldon Andrews for 64-bit builds.
  • ftr Added support for Dream Cheeky drum kit (USB device with buttons).

7:26:

  • bug Fixes by Ryan Pavlik to make things compile with or without CMake, including instructions in the various configuration files. Also includes vrpn_Configure.h in the developer installation.

7:25:

  • bug Fixes by Ryan Pavlik to make things compile under multiple MacOSX Versions.
  • *ftr Ryan Pavlik redid the CMake files to be more general and use modern Cmake usage.
  • bug Removed explicit link pragma with vrpn.lib because it breaks CMake.

7:23:

  • bug sound_client.c now compiles again (inadverent cutting of lines).
  • bug Fixing lots of warnings turned up by new compilers and CMake projects.
  • *ftr First release of CMake files for VRPN and quatlib. It compiles most of the VRPN projects. Tested on Windows, Linux, and Mac. The CMake files came from Simon Julier and Hans Labermont.
  • bug Patch from Bruno Raffin from imag.fr to make HumanInterface compile cleanly on Mac.
  • ftr Patch from Ian Curington to make 3DConnexions work with >8 buttons.
  • *ftr Server for HillCrest Labs' Freespace devices sent by Phil Black.

7:22:

  • *ftr Patch from Hans Lambermont to make HID interface and 3DConnexion work on MacOSX.

7:21:

  • *bug Fixed a bug where tracker callbacks would cause crashes when there were more than a couple of tracker sensors.
  • bug Bug fixes from Joseph Newman and and Hans Lambermont and Simon Julier for 3DConnexion on Mac OSX and Linux.

7:20:

  • bug Fixed a bug where multiple devices reading from the same file would not all get the callbacks for all of their messages. The file itself was fine. The bug was introduced in 7.16.

7:19:

  • ftr Implemented 16-to-8-bit transcoding in vrpn_Imager.
  • bug Included patch from Ian Curington to 3DConnexion devices that gets around a bug in the GCC 2.3 compiler.
  • ftr Added Ian Curington's support for Spaceball 5000.
  • *ftr Added Chris VanderKnyff's Xbox 360 game controller interface.
  • *ftr Added code to support the Nintendo WiiMote.
  • bug Fix from Roger Hoang for the IS900 Fastrak driver.
  • ftr Added Hans Lambermont's patch to light up 3DConnexion when opened on Linux.

7:18:

  • *bug Fixed a bug where log files on 64-bit machines could not be read on 32-bit machines and vice-versa.
  • bug Fixed the unsigned 16-bit decode routines in vprn_Imager (read out of bounds).
  • bug Fixed the vrpn_server parser to properly handle the "-lo" argument.

7:17:

  • bug Fixed orientation error when using clutch on vrpn_Tracker_AnalogFly.
  • bug Fixed parsing problem in vrpn_Tracker_AnalogFly for NULL axes.

7:16:

  • *ftr Note that changes made in this release require switching from the use of vrpn_Connection constructors to calling vrpn_create_server_connection(). This will break existing server code. This is part of switching to non-IP-based connection strategies such as MPI.
  • ftr Aron Helser at 3rdTech added changes to make the SensAble Phantom code compile using the newest version of the HD API under Visual Studio 2005.
  • ftr vrpn_print_devices now prints text messages as well as other messages from devices. It also avoids either preloading or accumulating when reading from a stored file (to avoid running out of memory for huge input files generated from video).
  • *ftr Adding vrpn_Tracker_NDI_Polaris driver submitted by Sharif Razzaque from InnerOptic.
  • bug Added patch from Jan Ciger that made the parsing of vrpn_AnalogFly parameters more general (and also fixed a bug in the rotation axes).
  • ftr Added patch from Mike Weiblen to add SpaceExplorer to 3DConnexion.
  • ftr Added updates from Lawrence K. at PhaseSpace to PhaseSpace driver.
  • bug Added another error check to JoyWin32 submitted by M. Casas Sanchez at Space Application Services in Belgium.
  • bug Fixed a bug reported by Patric Schmitz where 3DConnexion reports were getting lost.
  • ftr Initial work on Message-Passing Interface (MPI) communication layer for VRPN. Not yet completely implemented.
  • bug Modified to make TCP-only connections reconnect after a connection drops (and retry if the initial connection is not made).

7:15:

  • ftr TestImager client now neither pre-loads nor accumulates if it is used
  • to read from a log file.
  • bug Patch from Jan Ciger to fix RESET and CLUTCH buttons on anaoogfly.
  • The config file parser was setting them to the same thing.
  • BUG Finally tracked down and squashed the bug that kept UDP packets
  • from working with some computers that had multiple network connections.
  • ftr Patch from Michael Adrian to work with more Liberty tracker versions.
  • bug Patch from Patrick Hartling to make things compile with new mac compiler.
  • bug Patch from Patrick Hartling to make 3DConnexion compile on the mac.
  • ftr Added vendor-supplied code for MotionNode tracker. This code only
  • compiles under Visual Studio 2005 (not VS 6.0).
  • ftr Moved the DirectX paths from vrpn_Configure.h and described how to put
  • them into the Visual Studio environmnent itself once for all projects.
  • ftr Added patch from Eric Griffith to include control of a Liberty stylus.
  • bug Included definitions needed to compile with the InterSense library.

7:14:

  • ftr Added code from Jan Cigar that handles the 3DConnexion under Linux
  • using the event interface. I modified it quite a bit to try and
  • shoehorn it into the existing interface, so it may be broken.
  • ftr Added fix from Paulo G. de Barros to enable more than 2 joysticks.
  • bug Added fix from Jo Skjermo to run with Flocks that do not have
  • the extended-range transmitters; space was being scaled wrong.
  • bug Inserted David Marshburn's changes renaming Auxilliary to Auxiliary
  • ftr Added a CLUTCH button to AnalogFly that lets motion happen only
  • when a button is pressed, and behavior like clutching with a mouse.
  • ftr Reorganized a number of the Mouse classes and consolidated them
  • into vrpn_Mouse. This changed the scaling for the Windows version
  • of the mouse code; it now reports in fraction of screen size rather
  • than pixels. Also pulled vrpn_Keyboard out into a separate file.
  • bug Removed vrpn_Keyboard_Mouse (refactored as described above).

7:13:

  • bug Removed -lgpm from the Linux makefiles. Some distros don't have this.
  • The vrpn_Configure.h file tells how to make this link if it is
  • included in the build.
  • ftr Added a new derived class for vrpn_Analog_Output_Server for applications
  • that don't want to derive a new class but still want callbacks to be
  • called when new values come in. Also moved some functions from public
  • to protected in the vrpn_Analog_Output_Server class.

7:12:

  • bug Compiles on 64-bit Linux.
  • *ftr Added HID support in Windows from Chris VanderKnyff. Added
  • suport for XKeys devices (from Chris) and also for 3DConnexion
  • devices on top of HID.
  • ftr Added vrpn_Imager_Stream_Buffer object to store full-rate video
  • to log files while sending only the latest images across the
  • network.
  • ftr Added vrpn_Auxilliary_Logger object to cause logging to happen
  • remotely on a connection. This is now available in the vrpn.cfg
  • file.
  • bug Added Chris VanderKnyff's fixes to RumblePad that make it work
  • under Visual Studio .NET and 6.
  • bug Fixed a race-condition bug in the testimager_client.
  • bug Fix for the Intersense Wand submitted by Christian Odom.
  • bug Fixed vrpn_server to have all references cleaned up on exit
  • and to handle ^C exit on Windows.

7:11:

  • bug Removed iostream from included code
  • ftr Added code from Kurt Achatz to build for new versions
  • of the A.R.T. DTrack, which supports the Flystick2.
  • bug Makes the vrpn_DirectXRumblePad report that it is broken
  • until we get a fix from someone; Russ mangled it when
  • trying to get it to compile under Visual Studio 6.
  • bug Fixed the thread code to work under Windows, Linux, Mac.
  • Added test routine for the semaphores and threads.

7:10:

  • bug Made it compile under MacOSX Universal.
  • bug Bug fix from Mike Weiblen enabling >32 file descriptors.
  • bug Bug fix from Mike Weiblen for vrpn_Mouse server.

7:09:

  • bug Fixed Quatlib bug in q_to_axis_angle.
  • *ftr Added the "Event Mouse" and "inertialmouse"
  • interfaces from Bauhaus University Weimar, submitted by
  • Jan Springer. Also, helper libraries and functions.

7:08:

  • *bug Fixed RTS/CTS bugs in Windows and (hopefully) Linux versions That prevented Flock code from working.

7:07:

  • *ftr Added DirectX RumblePack driver from Chris VanderKnyff and
  • Jeff Feasel
  • ftr Added hemisphere control for Flock of Birds.
  • bug Fixed a bug that kept the code from compiling for DLL linkage.
  • ftr Added patch submitted by Patrick Hartling from Infiscape.com
  • to make it compile under MacOSX universal binaries.

7:06:

  • *ftr Added PhaseSpace driver from Lawrence Kwan.

7:05:

  • ftr Added build target for cross-compiling to ARM under Cygwin
  • *bug The embedded ARM version was not handling the conversion of
  • doubles to/from network byte order. This processor can have
  • a mixed-endian format that requires an extra swap.
  • bug Removed the Linux GPM Mouse library except when VPRN_USE_GPM_MOUSE
  • is defined in vrpn_Configure.h. Some distros don't have this
  • library and it was causing the build to fail.
  • bug Fixed the build environment for VS .NET development.
  • ftr Added forcefield implementation to vrpnDirectXFFJoystick from
  • David Borland.
  • bug Fixed bug with vrpnDirectXFFJoystick that caused buzzing submitted
  • by David Borland.

7.04:

  • *bug Inserted fix for Intersense Quaternion translation submitted by Christian Odom and Dan Lewis from Louisiana Immersive Technologies Enterprise. This probably changes the native position and orientation based on the way the code was before, but is the more correct interpretation.

7.03:

  • bug Improved the HDAPI implementation of ForceDevice for the Phantoms. Now includes friction and damping for the Plane class (using the HL proxy implementation).

7.02:

  • bug Inserted a fix from one of Virtools' partners (Kevin from
  • Axis 3d in Taiwan) to make the IS900 wand button
  • work.
  • bug Re-commenteded a line in the default configuration file
  • vrpn.cfg so that it didn't try to make a spurious
  • AnalogFly

7.01:

  • ftr Added vrpn_Button_USB from Tom De Weyer's group in Belgium.
  • ftr Modified vrpn_Keyboard_Mouse from same group to send analogs.
  • ftr Compiles under Visual C++ 2005 (new set of build files).
  • bug FileConnection bookmarking mechanism memory leak fixed.
  • ftr vrpn_Imager: Added is_description_valid() method.

7:00:

  • ftr Start on a port to the HDAPI library for running Phantoms
  • in the vrpn_ForceDevice.
  • ftr Added Keyboard_Mouse device from Tom De Weyer at EDM-
  • Uhasselt from Belgium that enables flying using the
  • Windows keybaord.
  • *ftr Added new ForceDevice code from Tom De Weyer at EDM-
  • Uhasselt from Belgium that enables a hierarchy of
  • objects.
  • ftr Added driver for Microscope from Tom De Weyer at EDM-
  • Uhasselt from Belgium.
  • ftr Added 5DT16 driver from Tom De Weyer at EDM-
  • Uhasselt from Belgium.
  • bug Fixed a bug in line-mode constraint for ForceDevice.
  • *bug Ported the serial-port code to the mac, and to a consistent
  • interface on Posix systems (termios style).
  • *bug Removed the synchronized connection object, and the clock
  • objects on which it depended. Available network-
  • clock-sync does a better job than VRPN was doing, and
  • this prevents time-warps in logged data files.
  • ftr Added GPM-based vrpn_Mouse class for Linux, submitted by
  • Mike Weiblen at 3DLabs.
  • ftr Added Logitech 3D Mouse driver submitted by Jinseok Seo
  • from the VR Lab of POSTECH in Korea.
  • ftr Added Crossbow driver from Chris VanderKnyff.
  • ftr Added reference-counting code for vrpn_Connection objects
  • submitted by Jeff Feasel. This will delete a connection
  • when all of the remote objects using it are deleted,
  • which causes a new object to open a new connection,
  • which prevents astonishment when replaying from stored
  • log files.
  • bug Fixed a bug in the NationalInstruments driver that was failing
  • on a non-error return from A0_Configure.
  • bug Removed the last vestiges of Streams from VRPN.
  • ftr Patches to make things compile on new architectures.
  • ftr Beta version of vrpn_Imager class for sending image data
  • over VRPN.

6.06:

  • *ftr David Nahon and Kurt Achatz added an A.R.T. tracker driver.
  • bug Fixed time-comparison bug in analog devices.
  • ftr ForceDevice test client to test the lower-level primitives.
  • ftr Beginning of a port from SensAble GHOST library to HDAPI
  • ftr Beginning of a vrpn_TempImager class to send images via VRPN.
  • ftr vrpn_Poser_Analogs can now use different devices for each output.
  • ftr vrpn_Analog_Outputs can now use National Instruments boards.
  • *bug Fixed reset bug in PinchGlove code.
  • ftr Made stream-file-loading code more general, so that it can
  • either pull in the whole thing first (default, original
  • behavior), pull it in as it goes, or only pull in the
  • records it is using. This is to make it faster to run
  • very large streamfiles (like ones that contain video
  • data sent through the imager).
  • ftr Patrick Hartling fixed VRPN to compile under Visual Studio.NET
  • bug Switched to vrpn_gettimeofday(), which defines itself depending
  • on architecture. No longer exposes gettimeofday() on
  • windows, which was breaking some builds. An optional
  • parameter makes VRPN still export it for backwards-compat.
  • bug CerealBox used to encode negative ticks incorrectly; fixed it.
  • *bug isense now reports meters (the VRPN standard), rather than cm.
  • *bug Flock code modified to optionally invert the quaternion orientation
  • before sending it back. This had always been done in the
  • past, but was probably a hack to make it work in the wrong
  • hemisphere.
  • ftr Added better description of -millisleep option; David Nahon
  • pointed out the differing behavior on Windows and Unix.

6.05:

  • bug Made Liberty tracker server compile on several architectures.
  • *bug Long-standing bug with the Flock driver meant that it would only
  • operate correctly when the sensors were in the wrong
  • hemisphere (which is how we ran them at UNC). Now has an
  • optional parameter with the default being the old (incorrect)
  • implementation.
  • ftr Added optional parameter to 5DT to let it handle 10 or 9 byte
  • messages because different ones seem to behave differently.
  • bug Plugged memory leaks in the Connection and Clock objects
  • *bug Make InstantBuzzEffect (and therefore server) compile without the
  • GHOST libraries installed if VRPN_USE_PHANTOM_SERVER is not
  • defined. Also, a later patch to make this compile again
  • with the libraries.

6.04:

  • ftr Moved vrpn_Tracker.cfg file out of the way so that it doesn't
  • generate error messages for non-Phantom trackers.
  • bug Fixed memory leak in remote tracker destructor
  • *ftr Sebastien Maraux added custom buzzing effect to ForceDevice
  • ftr Blair MacIntyre added code to native Isense driver to accept
  • arguments to add stylus and other things that were in
  • the Fastrak-based driver
  • *ftr Blair MacIntyre added Mac fixes making MacOSX work with Intersense
  • *ftr Sebastien Maraux added Joywin interface
  • bug Made DirectXJoystick driver not crash when it can't find a stick
  • *bug/ftr Changed the default port number from 4500 because VPNs had been
  • using that port and Microsoft shut it down to avoid security
  • holes.
  • ftr Added non-interrupting version of select that is more robust
  • in the presence of user-level signals.
  • *ftr Matt McCallus added Sound driver for DirectX and Ausim
  • *ftr Sascha Scholz added ADBox/CubicMouse drivers
  • ftr David Marshburn added flag to let you pick GHOST 3.1
  • ftr Updated Phantom driver to use GHOST 4.0
  • *ftr Sharif Razzaque added native-mode InterSense driver
  • bug Correctly handle case where only one log file is requested
  • bug Fixed the raw SGIbox code for reading the dials
  • *ftr Merged all servers into one program. You select what gets
  • compiled in by editing vrpn_Configure.h
  • *ftr Haris Fretzagias implemented a newer version of the fast
  • Windows clock that is available by defining
  • USE_UNSAFE_WINDOWS_CLOCK and the V2 definition near
  • it in vrpn_Configure.h. This seems to work on several
  • machines, so run time_test and see if you can use it.
  • *ftr Added support for Global Haptics GeoOrb
  • *ftr Deepak Bandyopadhyay and Sascha Scholz added the ability to
  • add a fastrak stylus
  • *ftr David Borland added vrpn_Analog_Output, which is the inverse
  • of a vrpn_Analog
  • *ftr Created vrpn_Configure.h file that you edit before compiling
  • to set site-specific defaults and to indicate which
  • portions of the library you want to use, what default
  • port to listen on, and other things.
  • ftr John Stone made lots of the code compile on Mac OSX
  • ftr Thorsten Scheuerman added changes to compile for ARM-based PDAs
  • running Linux
  • ftr Alternate reset option for older Magellans
  • ftr Works with Zaber Serial Positioning Units
  • *ftr David Borland added Poser (inverse Tracker)
  • ftr Can control focus location of Nikon microscopes
  • bug Fixed return value in vrpn_drain_output_buffer
  • bug Fixed seg-fault in newer compilers for the UNC joystick box
  • running under Linux.

6.03:

  • ftr Code to control the Zaber Serial Positioning Interface
  • linear actuators.
  • ftr vrpn_Analog_Remotes can now send requests to the server to
  • update the value. Used to control the Zaber and
  • other devices.
  • ftr New driver for Intersense trackers that uses their library
  • directly, rather than talking to the raw devices.
  • For IS600 and such, probably want to use the
  • Fastrak server still. You need to get their include
  • files and libraries to link, then define the proper
  • thing in the compiler VRPN_USE_ISENSE.
  • *ftr Java port of several of the VRPN remote objects. Still in
  • beta, but enables reading from trackers, buttons, and
  • analogs from Java applications. Also code to build
  • VRPN as a DLL so that it can be loaded by Java.
  • bug Serial port code changed on Windows to raise the DTR line when
  • the port is opened. When this was not done explicitly
  • on Windows XP, the TNG3 died because it uses this line
  • for power.
  • *bug TNG3 driver fixed. It used to hang forever on the read routine
  • because I made it loop while getting reports and the read
  • routine held out waiting for all of the characters. It
  • now polls.
  • *ftr Includes Phantom example programs (Tracker, Button, Forcedevice)
  • in client_src/haptic that show how to use VRPN with openGL
  • on SGIs.
  • *ftr Includes code from John Stone at Beckman Institute for driving
  • various versions of the Spaceball 6DOF controller with
  • buttons.
  • *bug 3Space driver orientation was decoded incorrectly for some
  • orientations. There is still a bug in the driver that will
  • make it only work on machines that have the same byte-order
  • as PCs.
  • bug Some IS900s report 54-byte status messages, which does not match
  • the 55-byte messages reported by Fastraks. This modifies
  • the Fastrak driver to accept messages of either length.
  • *bug Fixed a problem with the IS900 wand driver that prevented it from
  • ever reporting analog values (the mainloop() function in the
  • Analog_Server base class changed its behavior and the server
  • was not modified to match).
  • *ftr Modified project files to enable the compilation of the Phantom
  • server using a standard GHOST 3.1 installation, rather than
  • requiring the "external" system that we have at UNC.
  • bug Re-ordered unpacking of parameters to control button toggle
  • or momentary from the client. This re-enables client-side
  • control over whether a button is a toggle or momentary
  • *ftr Build files in vrpn_embedded to compile the client-side VRPN
  • library in Windows CE development environment. Currently
  • doesn't build the vrpn_print_devices file because of a link
  • problem, but the library does compile.
  • *ftr Program to display traces of tracker data is built into the
  • Vlib/openGL (vogl) library. Requires external UNC version
  • of Glut library to run.
  • ftr National Instruments D/A board server that will try to connect
  • to an analog server and will set the D/A channels to the
  • voltages that correspond to the Analog outputs.
  • ftr q_to_euler() function for quatlib to go directly to Euler angles
  • by Rich Holloway
  • clean Massive clean-up of Quatlib code by Rich Holloway.

6.02:

  • *bug Fixed a bug introduced by the "send all packets when a connection is
  • closing" fix reported below.
  • *bug Compiles the Phantom server with the same settings for all parts,
  • to avoid seg faults on print messages (the binary file was
  • bad last relese).
  • *bug Fixes the project file for the Phantom server so user-built ones will
  • also compile correctly.
  • bug Undosify run on the source files, so they will compile on Unix.

6.01:

  • ftr Upgraded to version 3.1 of GHOST library for Phantom server.
  • *bug Removed dynamic allocation of comm handles, which was causing seg
  • faults.
  • bug Added check for negative sensor number in callback for handler (this
  • happened when connected to a malfunctioning tracker server).
  • *bug Re-ordered the delivery of VRPN messages so that messages are packed
  • to endpoints before being delivered locally. This makes it be
  • the case that the messages are delivered in the same order on
  • the local and remote host if the callback handler for one message
  • sends a message of its own.
  • ftr Making error messages from more VRPN devices use vrpn_TEXT rather than
  • fprintf to stderr on the server machine when there is a
  • connection.
  • bug Making many serial devices keep reading in case there are multiple
  • reports in the serial buffer during one call to mainloop()
  • clean Refactoring serial trackers to put the main loop in the base class.
  • bug Making serial trackers read multiple reports if they are present during
  • a single call to mainloop().
  • bug Connections that are deleted send all of their pending messages
  • before shutting down. This is supposed to help stop race
  • conditions.
  • clean Removing un-called functions, adding comments, rearranging code
  • to be cleaner.

6.00:

  • bug Not a fix, but at least the Flock code now prints an error if you
  • try and open a Flock that has the transmitter set at other
  • than the first unit. A general solution will have to wait
  • until someone who wants it badly enough upgrades the driver,
  • or pays 3rdTech to.
  • *bug The timing code under Win32 tried to use the performance counter on
  • the Pentium chip to get timing resolution better than that
  • provided by _ftime() (which is about 6ms). Unfortunately,
  • the code was fragile and didn't work across all the flavors
  • (98, NT, and 2000). That code has been removed, so now the
  • resolution is about 6ms on Win32 (boo!), but at least it works
  • reliably.
  • *** Take not those who relied on better timing information!
  • *ftr Better client application for printing the output from devices.
  • vrpn_print_devices is given a list of devices and it will
  • print all common message types coming from them (tracker,
  • button, analog, dial, warning/error) or a subset of them.
  • User can select the frequency of tracker reports for each
  • sensor of each tracker -- reports from all sensors are
  • printed.
  • *ftr Includes a driver for the buttons on a mouse that is plugged into
  • a serial port (courtesy of Rob King at NRL)
  • *ftr Includes a driver for the buttons on a TNG3 (Totally Neat Gadget)
  • (again, courtesy of Rob King at NRL)
  • *bug Modified the various serial-device servers so that they check for
  • a valid record before checking for timeout. This prevents
  • infinite-reset loops, where one resets and causes the other
  • to time out, and then it returns the favor.
  • *ftr Includes a driver for PC joysticks under Linux, courtesy of
  • Harald Barth.
  • ftr Includes 3rdTech modifications to button code to enable use of
  • more general parallel port setups and button devices besides
  • the UNC Python parallel-port button.
  • *ftr Includes a driver for the 5DT glove (five fingers plus pitch and
  • roll are reported as analog values). The driver was written
  • by David Philippe from Direction de la Recherche in Paris.
  • ftr The Timecode generator server code has been combined into the
  • standard vrpn.C server code, guarded by INCLUDE_TIMECODE_SERVER
  • so that changes to the server will track. The project file
  • has been modified to look for the Adrienne code in a directory
  • at the same level as vrpn named Adrienne/AEX_DLL.
  • bug Fixed the driver for the UNC serial joysticks. Also, renamed it
  • vrpn_UNC_Joystick.[hC], rather than just vrpn_Joystick.[hC]
  • ftr Modified all of the message types to be legal "C" variable names.
  • This will enable auto-generation by PERL of the code to
  • handle them.
  • ftr Made it so that you can log both incoming and outgoing streams at
  • the server, requested by the client.
  • *ftr Added the ability to connect using only an outgoing TCP connection
  • to the server (to punch through a firewall or Network Address
  • Translation). When a connection is made this way, no data
  • is sent via UDP over that connection between the client and
  • server.
  • *bug Non-word-aligned code had sneaked back into the tracker drivers for
  • some devices. Now the vrpn_buffer() and vrpn_unbuffer()
  • routines have been changed to work for unaligned buffers as
  • well, so this should not recur. This should be fixed for
  • everything including the vrpn_float64 type now.

5.04:

  • ftr Adds a driver for the AEC PCI-LTC time-code reader board. Emits an analog value for each connected board that has the current timecode in seconds.

5.03:

  • ftr Adds a driver for the Wanda device, written by Brown University
  • ftr Code to handle Sierra video switches
  • *bug It turns out that ^C handlers in Windows are multithreaded, causing
  • printvals much confusion. Handling this properly fixes the
  • crash-at-the-end bug on 98/NT. HOWEVER, this does not work
  • properly when the program is run in at least some versions of
  • the Cygwin shell when run on Windows 98.
  • *bug Removed buggy clock-check code introduced in version 5.01
  • Now checks to see if it is Windows NT and disables if not
  • bug Cleaned up the gethostbyname() code on the NT version
  • bug Seg fault when using printvals to open file://stored.vrpn, where
  • file:stored.vrpn works.
  • bug Fixed vrpn_drain_output_buffer() to call drain rather than
  • flush. Should make Flock driver work better.
  • bug Made -millisleep 0 the default on vrpn_server again. Setting
  • it to 1 broke both the Radamac SPI and the Fastrak
  • *bug Removes code that causes a seg fault when a VRPN application
  • exits (due to multiple deletions of connections in the
  • system textprinter)

5.02:

  • ftr Clean-up of vrpn_Tracker.[hC]
  • Reduction of the number of register/unregister functions in vrpn_Tracker
  • Switching to the use of vrpn_buffer() and vrpn_unbuffer()
  • ftr Phantom button changed to button_filter to allow app to make it a toggle
  • *bug Fixes bugs in analogfly that caused it to seg fault
  • *ftr Driver for the Radamec Serial Position Interface camera tracker
  • bug Fixes deletion bug in printcereal
  • *ftr vrpn_AnalogFly now has to flavors: absolute and relative.
  • Also, added offset to the calculation chain
  • *** See new vrpn.cfg.SAMPLE file if you are using AnalogFly ***

5.01:

  • bug Zero-length VRPN messages were not logged.
  • bug If you deleted a vrpn_Connection with active Endpoints, they didn't close their sockets
  • *ftr Fastrak driver updated
  • *Support for InterSense 900 tracker (with Wand and/or Stylus) added to Fastrak driver
  • No longer issues "dangerous" commands during reset (dangerous to Isense)
  • Tries a fast reset first before doing full reset
  • Uses VRPN warning/error/info for many messages, rather than printf
  • bug Fixed gettimeofday() implementation on Win98 when perfcounter isn't close
  • bug Fixed some "const" declarations keeping it from compiling under Solaris
  • bug Buffer-send code to clear up space for new messages had been broken.
  • Fixing this allows sending gobs of data between calls to mainloop()
  • ftr Clipping/scaling analog server to map values to [-1..1]
  • *bug Fixes seg-fault on some architectures when reading from files

5.0:

  • bug Removed the mainloop() calls from within the ForceDevice methods that set
  • parameters. This will allow them to be used from within callback
  • handlers.
  • bug Modified "delete msgbuf" commands to become "delete [] msgbuf", which
  • matches the fact that they were created with "new char [len]".
  • *ftr The timeout parameter has been removed from the mainloop() functions of
  • the object classes (such as Analog) that had it. Waiting is more properly
  • done outside this function (using vrpn_SleepMsecs()).
  • *ftr Make it so that vrpn_Text messages don't get sent as the maximum-length text message
  • no matter how short the actual message is. THIS FEATURE MAKES THE CODE
  • NON-INTEROPERABLE WITH VERSION 4 OF VRPN. THIS FEATURE WILL BREAK ANY CODE
  • THAT USED vrpn_Text TO PASS STRINGS THAT CONTAINED THE NULL CHARACTER.
  • *bug Fixed the packing/unpacking of vrpn_Bool so that it uses the proper-length
  • byte ordering. THIS FEATURE MAY MAKE THE CODE NON-INTEROPERABLE WITH
  • VERSION 4 OF VRPN.
  • bug vrpn_Text send_message() should not call mainloop() inside it. Causes segfaults if
  • messages are send inside a callback handler.
  • *ftr vrpn_BaseClass object created, from which all object types should derive. Most
  • system object types now derive from this (clock, analog, button, dial,
  • forcedevice, sound, tracker, text). This pulls sender_id registration
  • and several other
  • functions together so that they are only implemented once. Also allows
  • extension of function (needed for the following features) by extending
  • only the vrpn_BaseClass object functions.
  • *ftr Text-handling code pulled into the vrpn_BaseClass object, so that all
  • objects can send text messages -- allows moving towards this way
  • of printing error messages from within objects.
  • *ftr vrpn_System_TextPrinter object created to print warnings and errors
  • from any created object (by default). User can change the ostream
  • that it uses, as well as adjust its level of verbosity. This should
  • allow all objects to print errors/warnings to the user console by
  • emitting VRPN text messages. This addresses a long-standing problem
  • with VRPN where you couldn't tell if there was a problem with the
  • server because its error messages go to some console on another
  • machine. Now they will go to both places for objects that are
  • derived from vrpn_BaseClass.
  • *ftr Handling the Ping/Pong messages that tell the client if the server is alive
  • The client warns of no hearbeat in 3 seconds, error if no heartbeat
  • in 10 second. Warn/error 1/second. Gets printed by vrpn_System_TextPrinter.

4.13:

  • (This version was never released publicly, changes are in 5.0, except the Logitech Magellan, look for it in 5.1 or email vrpn to get a beta driver).
  • *ftr Driver for the Logitech Magellan 6DOF motion controller. It is a button and
  • analog driver; you put the AnalogFly on top of its axes to make it
  • act as a tracker.
  • *ftr Multiple connections to the same server has been implemented. This allows
  • more than one client to connect to the same server at the same
  • time. Messages are unicast from the server to each client in this
  • version.
  • bug More general type/sender ID setup -- the old version didn't look at the
  • incoming index, but just assumed that they were sent in order.
  • bug Makes it so that logged messages from the client are not clock-adjusted
  • (they should never have been).
  • ftr Removes the endpointPtr() method from vrpn_Connection, since there can now be
  • more than one endpoint. This function provided a violation of encapsulation
  • in any case. Use the newconnection/droppedconnection messages to track
  • information on who is connected.
  • ftr Make it so that the server clears out all incoming requests when started
  • (in case client has been trying to call for a while). Also, bug fixed where
  • the client would pause for a second between a few calls, then request new
  • connections as fast as it could.

4.12:

  • (This version was never released publicly, changes are in 5.0).

4.11:

  • Adds server and remote versions of vrpn_float64 and vrpn_int32
  • that allow easy sharing of information between networked
  • applications. Implemented to allow shared state for multiple
  • users of the nanoManipulator connected across a network.
  • Make sure the millisleep() works without busywait on Unix and NT
  • Shutdown/restart server w/o restarting app
  • If the client starts before the server, this is okay -- it will retry
  • If the server stops, the client will restore the connection later
  • If you are logging on the client, it logs before and after reconnect
  • The break is marked in the log file, in case we need to know
  • this for some reason.
  • Both fullsync and interval clock synchronization work
  • Fixes the code to control a raw SGI dial/button box. The old version would
  • write too fast and sometimes choke the box.
  • Fixing the output on the Intersense
  • It failed to send any line feed to the tracker
  • It sends add a cr/lf to the screen
  • Rearranged headers to get rid of vrpn_cygwin_hack.h.
  • Problem with Cygwin hanging on a packet with 0-byte payload fixed
  • Removing the quat directory from within server_src. Quat should now be
  • checked out separately from CVS, at the same level as the VRPN
  • main directory.
  • Fixed problems with the output buffers in all of the classes that buffer messages. This causes
  • seg faults on some architectures when it is not done. Switched all the classes
  • to using the vrpn_buffer() calls, which handle unaligned buffers.
  • Figured out what was making the unaligned unbuffer seg-fault happen on some machines when
  • reading. PROBABLY FOUND THIS -- the TCP buffer was allocated on the fly
  • based on the size of the message received. I've modified it to match the
  • UDP way, which allocates a float64 buffer and points the character buffer there.
  • The last two fixes should solve problems found on solaris, aix and older
  • SGI machines that were causing segmentation violations.

4.10:

  • Example classes (templates) for device drivers (server objects)
  • Make sure you can create/delete/create remotes [destructor unregister handlers]
  • test_vrpn code that verifies handler registration/unregistration

4.09:

  • Fixes to allow compilation on sparc_solaris
  • Client_and_server example program added
  • Added sleep commands to the extended Fastrak reset commands
  • Document the example vrpn.cfg on the web pages
  • Document client_and_server.C in the web pages

4.08:

  • Fastrak driver improved for clarity and simplicity, augmented to work with Intersense
  • CerealBox driver for analog, digital and encoder inputs
  • Example server configuration file (vrpn.cfg)
  • Making client not complain when it cannot find vrpn_Tracker.cfg file
  • AnalogFly device created to allow flying with CerealBox joysticks