These are some bits of code and coding wisdom i've put together through the years... its not much.
If you want a newer version, I probably have one. Just ask me. Most of this stuff is VERY old.
CWGPS
This code interpretes NMEA messages from a GPS device and puts them into data structures that you can use in your code. The library is split such that you can use the top layer to connect to a device and return the data structure or use the lower level to parse NMEA messages.
NOTE: no warranty is implied but send me bug fixes if you find them
cwlib
This code is of useful data structures that I have used over the years. It also has neural network code and some of it if fairly well optimized. There is also memory allocation optimizations. It was written to be easy to use and understand.
NOTE: no warranty is implied but send me bug fixes if you find them
Cyberangle
Making sense of the Cyberglove information.
To use this software:
make cyberangle
make hand
To run it:
make sure your cyberglove driver is working and dumping data into the DIVERSE shared memory arenas and then run cyberangle.
cyberangle has a configuration stage, follow the instructions and it should work
To use hand, you need the Simple Virtual Environment (SVE) toolkit.
Cyberangle requires DIVERSE ( http://www.diverse.vt.edu ) and a cyberglove driver from my Diverse Additions below.
Diverse Additions
cmd - cmd is a tool to manipulate the 6 floats of x,y,z,h,p,r and four buttons for typical VR setups. Is has many options including reading scripts, logging, flying, setting memory specifically, etc. I use it so I don't have to connect to trackers all the time.
cwdiverse - cwdiverse are a few drivers for the Fastrak, Pinchgloves and Cyberglove. There is also a GUI to control them and SVEDIV - Allows you to attach SVE objects to DIVERSE Fastrak trackers. This keeps state and allows you to move SVE objects with sliders from DIVERSE
SVE for OSX
Bugs / Untested - Anyway, this is the port for OS X taken from sve version 2.1.6. It has a few bugs but mostly works:
- Alpha buffers don't work on my laptop. I don't know if this is a feature of my hardware or not but I am guessing it is.
- OSX doesn't have termio, it uses termios and I ported it but since my laptop only has USB ports and the trackers have serial, I never tested the changes. Someone want to take a look at this?
- I didn't port the audio code. Someone want to do this? I might if I find I need it.
Piped input and Java Slider - I also created a Java slider widget that emulates a tracker device. It is in the trackers/sliders directory and to use it, on the commandline give the name of the receiver you are emulation where 0 is the 1st. I crated an example in "examples/sliders". Since I had to break into the SVE code to get this to work, I might have broken other things but I can't check because I don't have a serial port. Anyway, how it works is it opens a pipe on "/tmp/svesliders" and the Java slider dumps chars into the pipe. You could also write a simple program that dumped data to the pipe. In fact, in "examples/sliders" there is a program "write" which writes the position and orientation to a reciever based on the command line parameters. Anyway, enjoy.
Usage - On the commandline, give the receiver number. Once opened (java takes a while), the max column gives the max value of the position slider (make sure you hit enter after you type in a value for the fields), the reset sets the pos and orient back to zero and the pos and orient fields can be used to set the values also. All units are centimeters.
Summary - Contact me if you have any problems. This port is rough around the edges as I didn't check it out on other macs. I have an Apple Titanium running 10.2.8. Also, I have several packages installed via the fink package manager and I don't know which ones it linked to on its own. I do know that you need to install Motif or lesstiff.
VTSVE