From: cutt@netcom.com (Paul S. Cutt)
Subject: Re: TECH: simple sourcecode for data aquisition from an IsoTrak II
Date: Fri, 18 Apr 1997 15:41:58 GMT
Message-ID: <cuttE8uBLy.52y@netcom.com>
Organization: Netcom On-Line Services


Wolfgang Birkfellner (wbirk@mamba.bmtp.akh-wien.ac.at) wrote:
: While I've written some code that aquires data from the Bird, I don't
: want to go through it all with the Polhemus. Is someone of You willing
: to share a piece of code with me that 
: 1.) sets up an IsoTrakII or FastTrak into a one receiver mode
: and
: 2.) aquires data from this thing 

We have a VR device API which does what you want. Same interface for both
and runs on Unix and wndows NT.

paul

--------------------------------
XVS-Link (TM)  
  
A Standard Device Interface for 
Virtual Environments and Applications  

(The software formerly known as SyncLink)
  
Benefits   
  
XVS-Link (TM) is a C++ class library that simplifies adding and 
maintaining virtual reality (VR) sensor support in existing 
applications.  It provides a standard device interface for 
including virtual environment devices into applications.   
  
Virtual environments have led to the proliferation of 3D devices
with multiple degrees of freedom x,y,z,roll,pitch,yaw).  Each 
device has its own strengths and weaknesses, and the creation 
of new devices brings with it a constant improvement in the 
capabilities available.  However, using these devices in 
applications is not easy.  
  
Many of these devices are mutually incompatible.  They have 
different command sets; they use different command syntax for 
the same commands; the output they give to the computer follows 
different binary formats; and the same type of data is presented 
using different coordinate systems.  Until now, the near-total 
lack of standardization of even the simplest virtual reality 
functions has discouraged developers from supporting multiple 
devices, or adding any VR support to their applications at all.  
  
XVS-Link takes the load off the application developer by providing
a standardized and portable object-oriented set of VR device 
drivers.  This lets the developer concentrate on the applications, 
rather than the idiosyncracies of each VR device.  
  
Object Oriented

XVS-Link provides an object-oriented interface to VR devices.
There is a single C++ class hierarchy for VR sensors.  This 
hierarchy currently handles 6-D sensors such as the Polhemus 
Fastrak, Logitech 3D Mouse, Ascension Flock of Birds, Spaceball
2003, and the VPL Research DataGlove Model 2.  A second C++ class
for coordinate systems allows the application programmer to
translate automatically between the differing coordinate systems 
used by VR devices, 3D rendering systems, and existing applications
and data sets.  In addition, XVS-Link also provides a C interface 
to the C++ libraries.  This enables programming entirely in C and 
calling all the devices from C. 

Common Interface  
  
All devices which provide 6-degree of freedom position and 
orientation data are handled similarly.  XVS-Link's base sensor 
class provides standard operations for opening devices, closing 
devices, and reading position, Euler angles, toggles, and other 
device data.  Common filtering operations are also avaiable in 
the base class, including origin offset, setting tolerance levels,
clipping, modulo, and scaling.  Each device may report data in 
either absolute or relative values, whether it is an isometric 
device like the Spaceball, or an isotonic device like the Fastrak.  
  
While the XVS-Link base class provides a common interface to 
common VR functions across different devices, it does not limit 
the application programmer to the lowest common denominator.  
Device-specific functions are also provided.  For example, Fastrak 
and Flock of Birds users can make use of the multistation 
capabilities of these devices, allowing multiple receivers to be
read from a single serial port.  DataGlove Model 2 programmers 
can calibrate the glove and read and write ASCII-formatted 
calibration tables.  Logitech users may access the fringe and out 
of range settings which warn when the receiver is approaching 
its line-of-sight limits.  
  
Sample application code provided with XVS-Link demonstrates how the 
same source code can be used to control any of the supported sensors.  
  
Switching Sensors  
  
XVS-Link's common interface makes it easy to switch between sensors
from within an application.  Simply close and delete the old sensor 
object, create and open a new sensor object, and reapply the 
application's sensor filters.  Even this level of detail can be 
hidden from the user by the application.  No longer do the 
software incompatibilities between sensors inhibit switching between
them from within an application.  
  
Customized Support    
  
Xtensory provides the services for adding customized device support 
at minimal costs. We will add your device to use the same interface.  
Custom devices can then use the same standard object-oriented interface
as commercial devices, without losing access to the functionality 
that makes the device unique. This enables all devices to share 
the same API.

Maintenance    
  
Xtensory provides support for upgrades and maintains the drivers as 
new devices become available.   
  
Portability  
  
SyncLink provides portability between different UNIX and POSIX 
platforms.  The same C++ class library is available for Silicon 
Graphics, Kubota Pacific, and Digital Equipment systems.  
  
Devices Supported   
  
Ascension Flock of Birds  
Ascension Extended Range Flock of Birds 
Ascension MotionStar
BG Systems BeeBox
General Reality CyberEye  
General Reality DataGlove
Immersion Probe and Personal Digitizer
Immersion Impulse Engine 2000  
Logitech 3D Mouse, Cyberman and Space Control Mouse/Magellan   
Origin Instruments DynaSight  
Polhemus Fastrak, Insidetrak, Isotrak, and 3Ball  
Precision Navigation Wayfinder  
Spacetec Spaceball 2003  
Virtual I/O i-glasses!  
Virtual Technologies CyberGlove  
VPL DataGlove Model 2  
5DT 5-Glove

System Requirements  

XVS-Link includes a C wrapper library, C++ object library, C++ 
header files, and sample C++ test software.  XVS-Link requires 
one of the following operating systems:
  
	SGI IRIX 5.2 or later (Irix 6.2 is now supported with 
		CC -n32 -o3 compile option)
	Digital OSF/1 1.3 or later   
	Microsoft Windows NT 3.51 (or later)/Windows 95  
	HP-UX 9.0 or later  
	Sun  
	  
XVS-Link also requires the appropriate C/C++ compiler for 
the platform:

	SGI C++ 3.0  
	Digital C++ 1.3 or later  
	Microsoft Visual C++ 4.0 
	HP  
	Sun  
  
Contact Xtensory regarding support for VR devices or UNIX/POSIX  
operating systems not listed above.  Xtensory will add in specific 
device support for custom devices so that they use the same 
interface API at minimal cost. 
	  
  
Contact

Xtensory Inc     
140 Sunridge Drive     
Scotts Valley, CA 95066
USA  
  
Tel 408/439-0600     
Fax 408/439-8845  
cutt@netcom.com  
  
...opening the doors of perception (TM)  
  


