|
VRPN 07.30
Obtaining VRPN
Getting Started
VRPN main page
VRPN Redmine
VRPN FAQ
VRPN Support
Installing and Testing
Compiling and Modifying
Client code
Server code
Troubleshooting
Connections
Logging and Playback
.NET
bindings for VRPN
Shared Objects
Sound
Text Messages
VRPN on PDAs
UNC-specific information
VRPN USB
|
|
Version Release Information
(Note to self: edit this page in code view, not in the WSYWIG editor.)
Change list: (items tagged as bug fix [bug], or feature [ftr]. Big ones starred.)
---------------
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
|