Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • danc/MicroCART
  • snawerdt/MicroCART_17-18
  • bbartels/MicroCART_17-18
  • jonahu/MicroCART
4 results
Show changes
################################################################################
# VRPN generic object configuration file to run a Mad City Labs controller
# wrapped with Tracker and Poser servers, each of which is named "Focus".
# They report the Z value of the stage in meters and set the Z height in
# meters.
# This file contains the general set of servers that might be useful for
# running or testing the code, with the appropriate ones for the particular
# device uncommented and the rest commented out.
################################################################################
# NULL Tracker. This is a "device" that reports the Identity transformation for
# each of its sensors at the specified rate. It can be used to verify connections
# are working and for other tests of VRPN. There are three arguments:
# char name_of_this_device[]
# int number_of_sensors
# float rate_at_which_to_report_updates
#vrpn_Tracker_NULL Focus 1 2.0
################################################################################
# AnalogFly Tracker. This is a tracker that is intended to be used on top of
# a joystick or motion tracker of some kind to turn it into a moving or flying
# device. It could be used on top of any analog device, in fact.
# This device basically takes in analog signals and puts out transformation
# matrices. It should supercede the JoyFly tracker, since it is more general.
# There are two kinds of JoyFly's: absolute ones and differential ones. For
# absolute ones, the analog value is mapped directly to position or orientation
# on each axis. For differential ones, the values are used to create a
# "change" matrix that is applied once per interval, accumulating changes as
# it goes; this enables the user to "fly" along by holding a joystick forward,
# for example.
# One analog channel is associated with each axis (X, Y, Z) and rotation about
# each axis (RX, RY, RZ). For each axis, the value is converted to a position
# (meters) or speed (meters/second) for absolute trackers; or into an
# orientation (revolutions) or angular velocity (revolutions/second) by first
# subtracting an offset, then thresholding it to see if it is far enough from
# zero, then (if it is) scaling it and taking it to a power (to allow nonlinear
# speedup as the stick is pushed far from center).
# A button can be associated with a reset function, which will take the
# device back to center (identity transformation). The device will also recenter
# when the first connection is made to the server it is running on. (Centering
# has no effect on absolute AnalogFlys).
# Any axis or the reset button can be disabled by setting the name of its
# associated device to the string "NULL".
# Note that you could have multiple of these devices running simultaneously,
# each with a different name and interaction metaphor. The user could then
# connect to their favorite one. Arguments:
# char name_of_this_device[]
# float update_rate_to_send_tracker_reports
# char type[] = "absolute" or "differential"
# [six lines follow, one for X Y Z RX RY RZ, each with:
# char axis_name[] (X Y Z RX RY RZ in that order)
# char name_of_analog_device[] (start with * for local)
# int channel_of_analog_device
# float offset
# float threshold
# float scale
# float power
# ]
# [New line to describe reset button, with:
# char "RESET"
# char name_of_button_device[] (start with * for local)
# int which_button_to_use
# ]
vrpn_Tracker_AnalogFly Focus 5.0 absolute
X NULL 0 0.0 0.0 1.0 1.0
Y NULL 1 0.0 0.0 -1.0 1.0
Z *Focus 0 0.0 0.0 0.02e-6 1.0
RX NULL 3 0.0 0.0 1.0 1.0
RY NULL 4 0.0 0.0 1.0 1.0
RZ NULL 5 0.0 0.0 0.5 1.0
RESET NULL 0
#vrpn_Tracker_AnalogFly Focus 60.0 absolute
#X *MCLXYZIN 4 0.0 0.0 10.0e-6 1.0
#Y *MCLXYZIN 5 0.0 0.0 10.0e-6 1.0
#Z *MCLXYZIN 6 0.0 0.0 10.0e-6 1.0
#RX NULL 3 0.0 0.0 1.0 1.0
#RY NULL 4 0.0 0.0 1.0 1.0
#RZ NULL 5 0.0 0.0 0.5 1.0
#RESET NULL 0
#vrpn_Tracker_AnalogFly Focus 60.0 absolute
#X NULL 0 0.0 0.0 1.0 1.0
#Y NULL 1 0.0 0.0 -1.0 1.0
#Z *Joystick0 6 -1.0 0.0 50e-6 1.0
#RX NULL 3 0.0 0.0 1.0 1.0
#RY NULL 4 0.0 0.0 1.0 1.0
#RZ NULL 5 0.0 0.0 0.5 1.0
#RESET NULL 0
################################################################################
# Microsoft DirectX compatible force-feedback joystick (or non-force-feedback
# joystick).
# char name_of_this_device[]
# int number of times per second to read from the device
# int number of times per second to update force (0 for non-force device)
#vrpn_DirectXFFJoystick Joystick0 60 200
#vrpn_DirectXFFJoystick Joystick0 60 0
################################################################################
# Analog Poser. This is a poser that is intended to be used on top of
# an analog output (perhaps a National Instruments board), whose outputs
# directly drive the position of some actuated stage. It could be used on top
# of any analog output device, in fact. This device basically takes in poses
# and puts out analog outputs.
# One analog channel is associated with each axis (X, Y, Z) and rotation about
# each axis (RX, RY, RZ). For each axis, the position (meters) is converted into
# a voltage; the orientation is mapped from a quaternion into Euler angles and
# each of the Euler angles is converted into a voltage (XXX Orientation is not yet
# implemented; the RX,RY, and RZ values must be specified but they are not used).
# XXX Velocity and orientation velocity are not yet supported.
# Any axis can be disabled by setting the name of its associated device to the
# string "NULL".
#
# Arguments:
# char vrpn_name_for_this_device[]
# char vrpn_name_of_the_analog_output_to_use[]
# (Preface with a * if it uses the same connection)
# [six lines follow, one for X Y Z RX RY RZ, each with:
# char axis_name[] (X Y Z RX RY RZ in that order)
# int channel_of_analog_output_device (First channel is channel 0)
# float offset
# float scale
# float min_value of workspace
# float max_value of workspace
# ]
vrpn_Poser_Analog Focus 0
X NULL 0 0.0 1.0 -10 10
Y NULL 1 0.0 1.0 -10 10
Z *Focus 0 0.0 50.0e6 0 4e-3
RX NULL 0 0.0 1.0 -10 10
RY NULL 0 0.0 1.0 -10 10
RZ NULL 0 0.0 1.0 -10 10
#vrpn_Poser_Analog Focus 0
#X *MCLXYZOUT 0 0.0 0.1e6 0 10.0
#Y *MCLXYZOUT 1 0.0 0.1e6 0 10.0
#Z *MCLXYZOUT 2 0.0 0.1e6 0 10.0
#RX NULL 0 0.0 1.0 -10 10
#RY NULL 0 0.0 1.0 -10 10
#RZ NULL 0 0.0 1.0 -10 10
################################################################################
# Nikon microscope connected to PC via serial port. Currently only controls
# the focus of the microscope using an analogout and reads the focus position
# using an analog.
#
# Arguments:
# char name_of_this_device[]
# char name_of_serial_device[]
vrpn_nikon_controls Focus COM1
################################################################################
# National Instruments A/D, D/A Analog and Analog Output server. This will open
# the board whose name is specified, configure the number of channels specified,
# and set the polarity and maximum voltage range at which to read and
# drive the channels.
##
# Arguments:
# char vrpn_name_for_this_device[]
# char name_of_NationalInstruments_board[]
# int number_of_input_channels (can be zero)
# float mininum_delay_between_Analog_Reports (zero for fastest)
# int input_polarity : 0 = unipolar, 1 = bipolar
# int input_mode : 0 = differential, 1 = ref single-end, 2 = non-ref SE
# int input_range : 5 = 5v, 10 = 10v, 20 = 20v
# int input_drive_ais : 0 = no, 1 = yes
# int input_gain
# int number_of_output_channels (can be zero)
# int output_polarity : 0 = unipolar, 1 = bipolar
# float min_out_voltage (used to guard against overdriving devices)
# float max_out_voltage (used to guard against overdriving devices)
# Input example
#vrpn_National_Instruments MCLXYZIN PCI-6052E 7 0 0 10 0 1 0 0 -10.0 10.0
# Output examples
#vrpn_National_Instruments MCLXYZOUT PCI-6733 0 0 0 10 0 1 0 3 0 0.0 10.0
#vrpn_National_Instruments Analog_XY DAQCard-6036E 0 0 0 0 10 0 1 2 1 -10.0 10.0
################################################################################
# VRPN generic object configuration file to run a Mad City Labs controller
# wrapped with Tracker and Poser servers, each of which is named "Focus".
# They report the Z value of the stage in meters and set the Z height in
# meters.
# This file contains the general set of servers that might be useful for
# running or testing the code, with the appropriate ones for the particular
# device uncommented and the rest commented out.
################################################################################
# NULL Tracker. This is a "device" that reports the Identity transformation for
# each of its sensors at the specified rate. It can be used to verify connections
# are working and for other tests of VRPN. There are three arguments:
# char name_of_this_device[]
# int number_of_sensors
# float rate_at_which_to_report_updates
#vrpn_Tracker_NULL Focus 1 2.0
################################################################################
# AnalogFly Tracker. This is a tracker that is intended to be used on top of
# a joystick or motion tracker of some kind to turn it into a moving or flying
# device. It could be used on top of any analog device, in fact.
# This device basically takes in analog signals and puts out transformation
# matrices. It should supercede the JoyFly tracker, since it is more general.
# There are two kinds of JoyFly's: absolute ones and differential ones. For
# absolute ones, the analog value is mapped directly to position or orientation
# on each axis. For differential ones, the values are used to create a
# "change" matrix that is applied once per interval, accumulating changes as
# it goes; this enables the user to "fly" along by holding a joystick forward,
# for example.
# One analog channel is associated with each axis (X, Y, Z) and rotation about
# each axis (RX, RY, RZ). For each axis, the value is converted to a position
# (meters) or speed (meters/second) for absolute trackers; or into an
# orientation (revolutions) or angular velocity (revolutions/second) by first
# subtracting an offset, then thresholding it to see if it is far enough from
# zero, then (if it is) scaling it and taking it to a power (to allow nonlinear
# speedup as the stick is pushed far from center).
# A button can be associated with a reset function, which will take the
# device back to center (identity transformation). The device will also recenter
# when the first connection is made to the server it is running on. (Centering
# has no effect on absolute AnalogFlys).
# Any axis or the reset button can be disabled by setting the name of its
# associated device to the string "NULL".
# Note that you could have multiple of these devices running simultaneously,
# each with a different name and interaction metaphor. The user could then
# connect to their favorite one. Arguments:
# char name_of_this_device[]
# float update_rate_to_send_tracker_reports
# char type[] = "absolute" or "differential"
# [six lines follow, one for X Y Z RX RY RZ, each with:
# char axis_name[] (X Y Z RX RY RZ in that order)
# char name_of_analog_device[] (start with * for local)
# int channel_of_analog_device
# float offset
# float threshold
# float scale
# float power
# ]
# [New line to describe reset button, with:
# char "RESET"
# char name_of_button_device[] (start with * for local)
# int which_button_to_use
# ]
vrpn_Tracker_AnalogFly Focus 5.0 absolute
X NULL 0 0.0 0.0 1.0 1.0
Y NULL 1 0.0 0.0 -1.0 1.0
Z *Focus 0 0.0 0.0 0.02e-6 1.0
RX NULL 3 0.0 0.0 1.0 1.0
RY NULL 4 0.0 0.0 1.0 1.0
RZ NULL 5 0.0 0.0 0.5 1.0
RESET NULL 0
#vrpn_Tracker_AnalogFly Focus 60.0 absolute
#X *MCLXYZIN 4 0.0 0.0 10.0e-6 1.0
#Y *MCLXYZIN 5 0.0 0.0 10.0e-6 1.0
#Z *MCLXYZIN 6 0.0 0.0 10.0e-6 1.0
#RX NULL 3 0.0 0.0 1.0 1.0
#RY NULL 4 0.0 0.0 1.0 1.0
#RZ NULL 5 0.0 0.0 0.5 1.0
#RESET NULL 0
#vrpn_Tracker_AnalogFly Focus 60.0 absolute
#X NULL 0 0.0 0.0 1.0 1.0
#Y NULL 1 0.0 0.0 -1.0 1.0
#Z *Joystick0 6 -1.0 0.0 50e-6 1.0
#RX NULL 3 0.0 0.0 1.0 1.0
#RY NULL 4 0.0 0.0 1.0 1.0
#RZ NULL 5 0.0 0.0 0.5 1.0
#RESET NULL 0
################################################################################
# Microsoft DirectX compatible force-feedback joystick (or non-force-feedback
# joystick).
# char name_of_this_device[]
# int number of times per second to read from the device
# int number of times per second to update force (0 for non-force device)
#vrpn_DirectXFFJoystick Joystick0 60 200
#vrpn_DirectXFFJoystick Joystick0 60 0
################################################################################
# Analog Poser. This is a poser that is intended to be used on top of
# an analog output (perhaps a National Instruments board), whose outputs
# directly drive the position of some actuated stage. It could be used on top
# of any analog output device, in fact. This device basically takes in poses
# and puts out analog outputs.
# One analog channel is associated with each axis (X, Y, Z) and rotation about
# each axis (RX, RY, RZ). For each axis, the position (meters) is converted into
# a voltage; the orientation is mapped from a quaternion into Euler angles and
# each of the Euler angles is converted into a voltage (XXX Orientation is not yet
# implemented; the RX,RY, and RZ values must be specified but they are not used).
# XXX Velocity and orientation velocity are not yet supported.
# Any axis can be disabled by setting the name of its associated device to the
# string "NULL".
#
# Arguments:
# char vrpn_name_for_this_device[]
# char vrpn_name_of_the_analog_output_to_use[]
# (Preface with a * if it uses the same connection)
# [six lines follow, one for X Y Z RX RY RZ, each with:
# char axis_name[] (X Y Z RX RY RZ in that order)
# int channel_of_analog_output_device (First channel is channel 0)
# float offset
# float scale
# float min_value of workspace
# float max_value of workspace
# ]
vrpn_Poser_Analog Focus 0
X NULL 0 0.0 1.0 -10 10
Y NULL 1 0.0 1.0 -10 10
Z *Focus 0 0.0 50.0e6 0 4e-3
RX NULL 0 0.0 1.0 -10 10
RY NULL 0 0.0 1.0 -10 10
RZ NULL 0 0.0 1.0 -10 10
#vrpn_Poser_Analog Focus 0
#X *MCLXYZOUT 0 0.0 0.1e6 0 10.0
#Y *MCLXYZOUT 1 0.0 0.1e6 0 10.0
#Z *MCLXYZOUT 2 0.0 0.1e6 0 10.0
#RX NULL 0 0.0 1.0 -10 10
#RY NULL 0 0.0 1.0 -10 10
#RZ NULL 0 0.0 1.0 -10 10
################################################################################
# Nikon microscope connected to PC via serial port. Currently only controls
# the focus of the microscope using an analogout and reads the focus position
# using an analog.
#
# Arguments:
# char name_of_this_device[]
# char name_of_serial_device[]
vrpn_nikon_controls Focus COM4
################################################################################
# National Instruments A/D, D/A Analog and Analog Output server. This will open
# the board whose name is specified, configure the number of channels specified,
# and set the polarity and maximum voltage range at which to read and
# drive the channels.
##
# Arguments:
# char vrpn_name_for_this_device[]
# char name_of_NationalInstruments_board[]
# int number_of_input_channels (can be zero)
# float mininum_delay_between_Analog_Reports (zero for fastest)
# int input_polarity : 0 = unipolar, 1 = bipolar
# int input_mode : 0 = differential, 1 = ref single-end, 2 = non-ref SE
# int input_range : 5 = 5v, 10 = 10v, 20 = 20v
# int input_drive_ais : 0 = no, 1 = yes
# int input_gain
# int number_of_output_channels (can be zero)
# int output_polarity : 0 = unipolar, 1 = bipolar
# float min_out_voltage (used to guard against overdriving devices)
# float max_out_voltage (used to guard against overdriving devices)
# Input example
#vrpn_National_Instruments MCLXYZIN PCI-6052E 7 0 0 10 0 1 0 0 -10.0 10.0
# Output examples
#vrpn_National_Instruments MCLXYZOUT PCI-6733 0 0 0 10 0 1 0 3 0 0.0 10.0
#vrpn_National_Instruments Analog_XY DAQCard-6036E 0 0 0 0 10 0 1 2 1 -10.0 10.0
# vrpn.cfg.SAMPLE for VRPN version 06.06
################################################################################
################################################################################
# This file provides comments and examples for the vrpn.cfg file that is read
# by the vrpn_server application when it starts up. This is a generic server
# application that can start up many but maybe not all servers.
#
# This has sample lines for a vrpn.cfg file. If you get a new device working,
# add a line for it here. DO NOT remove lines from this file (unless
# devices are declared obsolete) - just change the actual vrpn.cfg to match
# your application.
#
# All examples in the file are preceded by comment characters (#). To actually
# use one of these examples, remove that character from the beginning of all the
# examples that you want to use, and edit those lines to suit your environment.
################################################################################
################################################################################
################################################################################
# Tracker classes. Lines here to start various tracker servers. A description is
# provided for each type of tracker for the arguments it takes, then an example
# configuration line is provided.
################################################################################
################################################################################
# NULL Tracker. This is a "device" that reports the Identity transformation for
# each of its sensors at the specified rate. It can be used to verify connections
# are working and for other tests of VRPN. There are three arguments:
# char name_of_this_device[]
# int number_of_sensors
# float rate_at_which_to_report_updates
#vrpn_Tracker_NULL Tracker0 2 2.0
################################################################################
# Flock-of-birds Tracker. Runs an Ascension Flock of Birds tracker that is
# attached to a serial port on this machine. Note that there is another driver
# (listed below) that runs the Flock when each sensor is connected to its own
# serial line. Arguments:
# char name_of_this_device[]
# int number_of_sensors
# char name_of_serial_device[]
# int baud_rate_of_serial_device
# int invert_quaternion (0 = no, 1 = yes)
# optionnal char useERT
#
# NOTE: for useERT: use nothing, y or Y if you have an extended range
# transmitter, use N or n if not (added by David Nahon for Virtools
# VRPack/SAS Cube.
# NOTE: The "invert_quaternion" parameter was added because there was a
# conflict between the code that had been around since VRPN started and
# the Flock documentation -- it looks like most people had been using the
# Flock in the "wrong" hemisphere, which inverted the orientation relative
# to the position. The old behavior is obtained by specifying "1". Not
# inverting it is specified using "0".
#vrpn_Tracker_Flock Tracker0 4 /dev/ttyS0 1 115200
# If you have to FOB, with no Extended Range ctrler/transmitter, on Windows, use
#vrpn_Tracker_Flock Tracker0 2 COM1 38400 1 N
# Watch: be sure that the serial baud rate dip switches (the 3 on the left)
# of your master flock are properly set.
# You should try baud rates like 38400 before trying to go higher
# In normal address mode - less than 14 fob units - your switch should be:
# 0 1 2 3 4 5 6 7
# 0 0 1 X X X X 0 2400
# 0 1 0 X X X X 0 4800
# 0 1 1 X X X X 0 9600
# 1 0 0 X X X X 0 19200
# 1 0 1 X X X X 0 38400
# 1 1 0 X X X X 0 57600
# 1 1 1 X X X X 0 115200
#
# X X X X are used for coding the FOB address, they must be set correctly,
# even if you are only using 1 unit (standalone mode)
# the settings should be (in normal address mode):
# 3 4 5 6
# 0 0 0 1 for the first unit
# 0 0 1 0 for the second unit
# 0 0 1 1 for the third
# 0 1 0 0 for the fourth
# 0 1 0 1 for the fifth
# ...
#
############################################################################
# WATCH WATCH WATCH WATCH WATCH WATCH WATCH WATCH WATCH WATCH WATCH WATCH
###################
#
# On windows at least, it might be necessary to cut your serial cable so as
# to only have Transmit, Receive and Ground pins. Even if CBIRDS or WINBIRDS
# are fine with a cable, it doesn't mean that this cable will please vrpn.
# This limitation should have been fixed with version 06.05.
#
###################
################################################################################
# Flock-of-birds in parallel Tracker. Runs an Ascension Flock of Birds tracker
# that has its source and each sensor plugged into its own serial port on this
# machine (perhaps through a Cyclades multi-port serial card). This mode of
# operation increases the throughput and decreases the latency of tracker reports.
# The arguments match those of the Flock-of-birds tracker from above, with the
# addition of the name of the serial ports for each of the sensors added at the
# end. Arguments (all on the same line):
# char name_of_this_device[]
# int number_of_sensors
# char name_of_serial_device_for_controller[]
# int baud_rate_of_serial_device
# int invert_quaternion (0 = no, 1 = yes)
# [one for each sensor] char name_of_serial_device_for_sensor[]
#
# NOTE: The "invert_quaternion" parameter was added because there was a
# conflict between the code that had been around since VRPN started and
# the Flock documentation -- it looks like most people had been using the
# Flock in the "wrong" hemisphere, which inverted the orientation relative
# to the position. The old behavior is obtained by specifying "1". Not
# inverting it is specified using "0".
#vrpn_Tracker_Flock_Parallel Tracker0 4 /dev/ttyC4 115200 1 /dev/ttyC0 /dev/ttyC1 /dev/ttyC2 /dev/ttyC3
#vrpn_Tracker_Flock_Parallel Tracker0 2 COM1 115200 1 COM2 COM3
################################################################################
# Fastrak Tracker. Runs a Polhemus Fastrak tracker that is attached to a serial
# port on this machine. This driver will also run an InterSense IS600 or IS900
# tracker, but you will want to include extra initialization code (as described
# below) to set up the ultrasonic pip information, wand devices, stylus devices
# and so forth. Arguments that go on the first line:
# char name_of_this_device[]
# char name_of_serial_device[]
# int baud_rate_of_serial_device
#
# It is possible to add additional commands that will be sent to the tracker
# by putting the backslash character (\) at the end of the config line. This
# will cause the following line to be read in and sent to the Fastrak during
# the reset routine. You can add additional lines by putting a slash at the
# end of each command line but the last. Each line will be sent to the Fastrak
# with a newline at the end of it. If a line starts with an asterisk (*), then
# it is treated as a line telling how long to sleep, with the integer number of
# seconds following the *.
#
# If one or more sensors on the Fastrak have a stylus button on them, use
# the "FTStylus" command after the reset command lines (if any). There should
# be a front-slash "/" character at the end of the line before the FTStylus
# command. The command takes two arguments: the name of the button device
# that will report the buttons and the sensor number to which the button is
# attached (the first sensor is sensor 0).
#
# Commands to add Joysticks (2 buttons) or Wands (5 buttons and 2 analogs) to
# the various sensors on the Isense900 are done by adding Stylus and
# Wand command lines after the reset command lines. Each of these lines
# takes two arguments: the name of the button (for Stylus) or button and
# analog (for Wand) servers, and the sensor number (starting from 0). The
# Wand line takes eight additional parameters, which specify the scaling
# and clipping behavior of the two directions on the analog joystick. Each
# set of for is the min, lowzero, hizero, and max values: these are mapped
# to -1, 0,0, and 1 (all values between lowzero and hizero are mapped to 0).
# Start with these at -1,0,0,1 and use the 'printcereal' program or some other
# method to read them and see what the range of acheivable values is. Then,
# set them to slightly conservative values so that the whole range is covered
# and the analogs will report zero when the joystick is centered. The
# presence of these lines is indicated by placing them after any additional
# reset command lines, by ending the line preceding them with the front slash
# "/" character.
#
# Remember that the "remote" button object is not the same as the the tracking
# device, so be sure to use a remote button object that connects to the button
# rather than the tracker. The button device name is defined on the stylus or
# wand line in the config file, and should not be the same as the tracker. In
# the case described by the example configuration below, if the name of the
# machine running the server is "myis900server" you would connect to the tracker
# as "Isense900@myis900server" and to the buttons on the stylus as
# "Stylus0@myis900server":
#
# Note that this frontslash and backslash-notation can only be used for the
# Fastrak/Isense tracker, not to extend the line for any other type of device
# listed in this configuration file.
# Vanilla Fastrak on on a Unix box
#vrpn_Tracker_Fastrak Fastrak0 /dev/ttyS0 19200
# Fastrak with a stylus on sensor zero on a Windows box
#vrpn_Tracker_Fastrak Tracker0 COM1 115200 /
#FTStylus Stylus0 0
# IS600 and its pip settings
#vrpn_Tracker_Fastrak Isense600 /dev/ttyS0 19200 \
#MCc\
#*5\
#MCM1,1,0.0900,0.0000,-0.2210,0.00,0.00,-1.00,89\
#MCM1,2,-0.0566,0.0000,-0.2210,0.00,0.00,-1.00,87\
#MCM2,1,0.0900,0.0000,-0.2210,0.00,0.00,-1.00,66\
#MCM2,2,-0.0566,0.0000,-0.2210,0.00,0.00,-1.00,71\
#MCM3,1,0.1237,-0.0762,-0.0424,0.00,0.00,-1.00,82\
#MCM3,2,0.1237,0.0762,-0.0424,0.00,0.00,-1.00,77\
#MCe\
#*10
# IS900 with a wand on the first sensor and a stylus on the third:
#vrpn_Tracker_Fastrak Isense900 COM1 115200 /
#Wand Wand0 0 -1.0 0.0 0.0 1.0 -1.0 0.0 0.0 1.0 /
#Stylus Stylus0 2
################################################################################
# Liberty Tracker. Runs a Polhemus Liberty tracker that is attached to a serial
# port or USB port on this machine. Arguments that go on the first line
# char name_of_this_device[]
# char name_of_serial_or_usb_device[]
# int baud_rate_of_serial_device (not used when the device is USB)
#
# It is possible to add additional commands that will be sent to the tracker
# by putting the backslash character (\) at the end of the config line. This
# will cause the following line to be read in and sent to the Liberty during
# the reset routine. You can add additional lines by putting a slash at the
# end of each command line but the last. Each line will be sent to the Fastrak
# with a newline at the end of it. If a line starts with an asterisk (*), then
# it is treated as a line telling how long to sleep, with the integer number of
# seconds following the *.
# -------------------------------------------
# Example when Liberty is attached via USB
# The BAUD Rate is needed, although it is not used
#vrpn_Tracker_Liberty Liberty /dev/usb/ttyUSB0 115200
#--------------------------------------------
# Example when Liberty is attached via Serial
#vrpn_Tracker_Liberty Liberty /dev/ttyS0 115200
################################################################################
# InterSense tracker using the Intersense-provided library to communicate
# with the tracker. This device type is not compiled by default, since it uses
# a proprietary library. However, you can get it to compile by defining
# VRPN_INCLUDE_INTERSENSE when compiling. Note that the Fastrak driver will
# run IS-600 and IS-900 trackers without the proprietary library, so you might
# try that as well.
#
# You can include extra initialization code (as described
# below) to set up the ultrasonic pip information, wand devices, stylus devices
# and so forth. Arguments that go on the first line:
# char name_of_this_device[]
# char name_of_serial_device[] - this can be COM1-4 or AUTO
# AUTO will automatically find USB and
# serial trackers. Use COM1-4 only if you
# have more than one serial tracker.
# You should use COM1-4 on unix as well,
# as these just tell the isense library
# to look in serial port 1-4.
# I guess you can't have >1 USB trackers.
# char "IS900time" - use the IS900 timestamps (optional)
# char "ResetAtStartup" - resets all boresight and heading, on intertrax,
# equivalent to push the reset button
#
# It is possible to add additional commands that will be sent to the tracker
# by putting the backslash character (\) at the end of the config line. This
# will cause the following line to be read in and sent to the InterSense during
# the reset routine. You can add additional lines by putting a slash at the
# end of each command line but the last. Each line will be sent to the InterSense
# with a newline at the end of it. If a line starts with an asterisk (*), then
# it is treated as a line telling how long to sleep, with the integer number of
# seconds following the *.
#
# Commands to add Joysticks (2 buttons) or Wands (5 buttons and 2 analogs) to
# the various sensors on the Isense900 are done by adding Stylus and
# Wand command lines after the reset command lines. Each of these lines
# takes two arguments: the name of the button (for Stylus) or button and
# analog (for Wand) servers, and the sensor number (starting from 0). The
# Wand line takes eight additional parameters, which specify the scaling
# and clipping behavior of the two directions on the analog joystick. Each
# set of for is the min, lowzero, hizero, and max values: these are mapped
# to -1, 0,0, and 1 (all values between lowzero and hizero are mapped to 0).
# Start with these at -1,0,0,1 and use the 'printcereal' program or some other
# method to read them and see what the range of acheivable values is. Then,
# set them to slightly conservative values so that the whole range is covered
# and the analogs will report zero when the joystick is centered. The
# presence of these lines is indicated by placing them after any additional
# reset command lines, by ending the line preceding them with the front slash
# "/" character.
#
# Remember that the "remote" button object is not the same as the the tracking
# device, so be sure to use a remote button object that connects to the button
# rather than the tracker. The button device name is defined on the stylus or
# wand line in the config file, and should not be the same as the tracker. In
# the case described by the example configuration below, if the name of the
# machine running the server is "myis900server" you would connect to the tracker
# as "Isense900@myis900server" and to the buttons on the stylus as
# "Stylus0@myis900server":
#
# Note that this frontslash and backslash-notation can only be used for the
# Fastrak and InterSense tracker, not to extend the line for any other
# type of device
# listed in this configuration file.
#
# Note that this driver expects the device to be set to output centimeters, and will convert
# the positions to meters. It is recommanded to permanently set the units in the eeprom of your device.
# If this is not possible, you should add in this file the "u" reset command so as to have vrpn
# tell your device to use centimeters
#
#Vanilla InterSense
#vrpn_Tracker_InterSense Tracker0 AUTO IS900time
# Vanilla InterSense using IS900 timing, with wand in port B (and possibly head tracker in port A)
#vrpn_Tracker_InterSense Tracker0 AUTO IS900time /
#Wand Wand0 1 -1.0 0.0 0.0 1.0 -1.0 0.0 0.0 1.0
# IS600 and its pip settings
#vrpn_Tracker_InterSense Isense600 COM1 \
#MCc\
#*5\
#MCM1,1,0.0900,0.0000,-0.2210,0.00,0.00,-1.00,89\
#MCM1,2,-0.0566,0.0000,-0.2210,0.00,0.00,-1.00,87\
#MCM2,1,0.0900,0.0000,-0.2210,0.00,0.00,-1.00,66\
#MCM2,2,-0.0566,0.0000,-0.2210,0.00,0.00,-1.00,71\
#MCM3,1,0.1237,-0.0762,-0.0424,0.00,0.00,-1.00,82\
#MCM3,2,0.1237,0.0762,-0.0424,0.00,0.00,-1.00,77\
#MCe\
#*10
# IS900 with a wand on the first sensor and a stylus on the third:
#vrpn_Tracker_InterSense Isense900 COM1 /
#Wand Wand0 0 -1.0 0.0 0.0 1.0 -1.0 0.0 0.0 1.0 /
#Stylus Stylus0 2
# Intertrax2 on USB, With automatic reset at startup
#vrpn_Tracker_InterSense Tracker0 AUTO ResetAtStartup
################################################################################
# Dynasight Tracker. Runs an Origin System's DynaSight tracker connected to a
# serial port on this machine. arguments:
# char name_of_this_device[]
# int number_of_sensors
# char name_of_serial_device[]
# int baud_rate_of_serial_device
#vrpn_Tracker_Dyna Tracker0 1 /dev/ttyS0 19200
#vrpn_Tracker_Dyna Tracker0 1 COM1 19200
################################################################################
# AnalogFly Tracker. This is a tracker that is intended to be used on top of
# a joystick or motion tracker of some kind to turn it into a moving or flying
# device. It could be used on top of any analog device, in fact.
# This device basically takes in analog signals and puts out transformation
# matrices. It should supercede the JoyFly tracker, since it is more general.
# There are two kinds of JoyFly's: absolute ones and differential ones. For
# absolute ones, the analog value is mapped directly to position or orientation
# on each axis. For differential ones, the values are used to create a
# "change" matrix that is applied once per interval, accumulating changes as
# it goes; this enables the user to "fly" along by holding a joystick forward,
# for example.
# One analog channel is associated with each axis (X, Y, Z) and rotation about
# each axis (RX, RY, RZ). For each axis, the value is converted to a position
# (meters) or speed (meters/second) for absolute trackers; or into an
# orientation (revolutions) or angular velocity (revolutions/second) by first
# subtracting an offset, then thresholding it to see if it is far enough from
# zero, then (if it is) scaling it and taking it to a power (to allow nonlinear
# speedup as the stick is pushed far from center).
# A button can be associated with a reset function, which will take the
# device back to center (identity transformation). The device will also recenter
# when the first connection is made to the server it is running on. (Centering
# has no effect on absolute AnalogFlys).
# Any axis or the reset button can be disabled by setting the name of its
# associated device to the string "NULL".
# Note that you could have multiple of these devices running simultaneously,
# each with a different name and interaction metaphor. The user could then
# connect to their favorite one. Arguments:
# char name_of_this_device[]
# float update_rate_to_send_tracker_reports
# char type[] = "absolute" or "differential"
# [six lines follow, one for X Y Z RX RY RZ, each with:
# char axis_name[] (X Y Z RX RY RZ in that order)
# char name_of_analog_device[] (start with * for local)
# int channel_of_analog_device
# float offset
# float threshold
# float scale
# float power
# ]
# [New line to describe reset button, with:
# char "RESET"
# char name_of_button_device[] (start with * for local)
# int which_button_to_use
# ]
#vrpn_Tracker_AnalogFly Tracker0 60.0 differential
#X *CerealBox0 4 0.0 0.021 1.0 1.0
#Y *CerealBox0 5 0.0 0.021 1.0 1.0
#Z *CerealBox0 6 0.0 0.021 3.0 1.0
#RX *CerealBox0 0 0.0 0.021 1.0 1.0
#RY *CerealBox0 1 0.0 0.021 1.0 1.0
#RZ *CerealBox0 2 0.0 0.021 3.0 1.0
#RESET *CerealBox 3
#vrpn_Tracker_AnalogFly Tracker0 60.0 differential
#X *Magellan0 0 0.0 0.0 2.0 1.0
#Y *Magellan0 1 0.0 0.0 2.0 1.0
#Z *Magellan0 2 0.0 0.0 2.0 1.0
#RX *Magellan0 3 0.0 0.0 2.0 1.0
#RY *Magellan0 4 0.0 0.0 2.0 1.0
#RZ *Magellan0 5 0.0 0.0 2.0 1.0
#RESET NULL 0
#vrpn_Tracker_AnalogFly Tracker0 60.0 absolute
#X NULL 0 0.0 0.0 1.0 1.0
#Y NULL 0 0.0 0.0 1.0 1.0
#Z NULL 0 0.0 0.0 1.0 1.0
#RX *Radamec0 1 0.0 0.0 -0.0027777777 1.0
#RY NULL 0 0.0 0.0 1.0 1.0
#RZ *Radamec0 0 0.0 0.0 0.0027777777 1.0
#RESET NULL 0
#vrpn_Tracker_AnalogFly Tracker0 60.0 absolute
#X *Joystick0 0 0.0 0.0 1.0 1.0
#Y *Joystick0 1 0.0 0.0 -1.0 1.0
#Z *Joystick0 6 0.0 0.0 1.0 1.0
#RX NULL 3 0.0 0.0 1.0 1.0
#RY NULL 4 0.0 0.0 1.0 1.0
#RZ *Joystick0 5 0.0 0.0 0.5 1.0
#RESET NULL 0
#vrpn_Tracker_AnalogFly Phantom 60.0 absolute
#X *Phantom 0 0.0 0.0 0.125 1.0
#Y *Phantom 1 0.0 0.0 -0.125 1.0
#Z *Phantom 6 0.0 0.0 0.25 1.0
#RX NULL 3 0.0 0.0 1.0 1.0
#RY NULL 4 0.0 0.0 1.0 1.0
#RZ *Phantom 5 0.0 0.0 0.06 1.0
#RESET NULL 0
# For DTU/MIC optical nanoHand stage motion, moving over full 300 micron range
# of motion, using the Logitech joystick for the analog
# server and the tracker_to_poser program.
#vrpn_Tracker_AnalogFly Tracker0 60.0 absolute
#X *Joystick0 0 -0.03 0.0 2.53 1.0
#Y *Joystick0 1 -0.04 0.0 2.53 1.0
#Z *Joystick0 6 -0.10 0.0 -1.75 1.0
#RX NULL 3 0.0 0.0 1.0 1.0
#RY NULL 4 0.0 0.0 1.0 1.0
#RZ *Joystick0 5 0.0 0.0 0.5 1.0
#RESET NULL 0
# To drive a Tektronix 4662 full range (Z, RZ ignored)
#vrpn_Tracker_AnalogFly Tracker0 60.0 absolute
#X *Joystick0 0 -1.0 0.0 0.19 1.0
#Y *Joystick0 1 1.0 0.0 -0.13 1.0
#Z *Joystick0 6 0.0 0.0 1.0 1.0
#RX NULL 3 0.0 0.0 1.0 1.0
#RY NULL 4 0.0 0.0 1.0 1.0
#RZ *Joystick0 5 0.0 0.0 0.5 1.0
#RESET NULL 0
################################################################################
# XXX This device is superceded by the more-general vrpn_Tracker_AnalogFly.
# JoyFly Tracker. A vrpn_Tracker that translates the vrpn_Joystick into
# Walkthrough- convention tracker reports. This is part of a two-part setup
# that allows you to use a joystick as a flying device. First, a joystick
# device has to be created (named joybox in our example) that will produce
# the analog inputs that the JoyFly tracker uses to determine the transformation.
# Then, the JoyFly device needs to be started and will listen to the device
# and produce tracker reports. If these are both run on the same server, then
# the JoyFly needs to use the "server" connection to hear from the Joystick
# device, which is indicated by placing a '*' in front of the name of the
# joystick device that it is to use. If the joystick device is remote from
# this server, then the full name of it should be used (joystick@foo.cs.unc.edu).
# XXX This device is superceded by the more-general vrpn_Tracker_AnalogFly
# Arguments:
# char name_of_this_device[]
# char source_joystick_name[] (Start with * for one sharing a connection)
# char joystick_configuration_file_name[]
#vrpn_JoyFly walk-joybox *joybox vrpn_Joyfly.cfg
################################################################################
# ButtonFly Tracker. This is a tracker that is intended to be used on top of
# a Global Haptics Orb or other buttond device to turn it into a moving or
# flying device. It basically takes in button signals and puts out
# transformation matrices.
# There are two kinds of Buttons: absolute ones and differential ones. For
# absolute ones, pressing it causes the position or orientation associated with
# it to be stored directly into the transformation. This enables the user to
# "teleport" to given locations by pressing buttons. For differential ones,
# the position or orientation are treated as deltas and are used to create a
# "change" matrix that is applied once per interval, accumulating changes as
# it goes; this enables the user to "fly" along by holding a button down,
# for example.
# Each button is associated with either a position (meters) or speed
# (meters/second) for absolute buttons; or an orientation (revolutions)
# or angular velocity (revolutions/second).
# An analog channel can be associated with a scale function that scales the
# velocity or angular velocity terms uniformly. The entry specifies an
# offset to be applied to the analog channel, a scale to be applied to it,
# and a power to which the result should be taken; the end result is used
# to scale all velocity or angular velocity terms. This channel has no
# effect on the effects of absolute buttons.
# The device will recenter (set itself to the identity transform) when the
# first connection is made to the server it is running on.
# Note that you could have multiple of these devices running simultaneously,
# each with a different name and interaction metaphor. The user could then
# connect to their favorite one. Arguments:
# char name_of_this_device[]
# float update_rate_to_send_tracker_reports
# [one or more lines follow, each of one of two types
# (1) char [] = "absolute"
# char name_of_button_device[] (start with * for local)
# int which_button_on_device
# float X_to_translate_to
# float Y_to_translate_to
# float Z_to_translate_to
# float rotation_about_X
# float rotation_about_Y
# float rotation_about_Z
# (2) char [] = "differential"
# char name_of_button_device[] (start with * for local)
# int which_button_on_device
# float X_translation_meters_per_second
# float Y_translation_meters_per_second
# float Z_translation_meters_per_second
# float spin_about_X_revolutions_per_second
# float spin_about_Y_revolutions_per_second
# float spin_about_Z_revolutions_per_second
# ]
# [An optional line describing an analog to scale the velocity
# char [] = "vel_scale"
# char name_of_button_device[] (start with * for local)
# int which_button_on_device
# float offset
# float scale
# float power
# ]
# [An optional line describing an analog to scale the rotation
# char [] = "rot_scale"
# char name_of_button_device[] (start with * for local)
# int which_button_on_device
# float offset
# float scale
# float power
# ]
# [one more line, consisting of the word "end"]
# Note that the same button can cause more than one action to take place,
# and the same analog can cause scaling of both the velocity and rotation.
# This example for a Global Haptics Orb pushes the transformation away
# from the button that is pressed
# for all of the standard buttons. It rotates around the Y axis when the
# rocker switch is rocked up and down. It resets to the origin when one
# of the pushbuttons is pressed. Both the velocity and angular velocity
# are controlled by the thumbwheel.
#vrpn_Tracker_ButtonFly Tracker0 60.0
#differential *Orb0 0 0 1 0 0 0 0
#differential *Orb0 1 0.707 0.707 0 0 0 0
#differential *Orb0 2 1 0 0 0 0 0
#differential *Orb0 3 0.707 -0.707 0 0 0 0
#differential *Orb0 4 0 -1 0 0 0 0
#differential *Orb0 5 -0.707 -0.707 0 0 0 0
#differential *Orb0 6 -1 0 0 0 0 0
#differential *Orb0 7 -0.707 0.707 0 0 0 0
#differential *Orb0 8 0 0.707 -0.707 0 0 0
#differential *Orb0 9 0.577 0.577 -0.577 0 0 0
#differential *Orb0 10 0.707 0 -0.707 0 0 0
#differential *Orb0 11 0.577 -0.577 -0.577 0 0 0
#differential *Orb0 12 0 -0.707 -0.707 0 0 0
#differential *Orb0 13 -0.577 -0.577 -0.577 0 0 0
#differential *Orb0 14 -0.707 0 -0.707 0 0 0
#differential *Orb0 15 -0.577 0.577 -0.577 0 0 0
#differential *Orb0 16 0 0.707 0.707 0 0 0
#differential *Orb0 17 0.577 0.577 0.577 0 0 0
#differential *Orb0 18 0.707 0 0.707 0 0 0
#differential *Orb0 19 0.577 -0.577 0.577 0 0 0
#differential *Orb0 20 0 -0.707 0.707 0 0 0
#differential *Orb0 21 -0.577 -0.577 0.577 0 0 0
#differential *Orb0 22 -0.707 0 0.707 0 0 0
#differential *Orb0 23 -0.577 0.577 0.577 0 0 0
#differential *Orb0 24 0 0 -1 0 0 0
#differential *Orb0 25 0 0 1 0 0 0
#differential *Orb0 28 0 0 0 0 -0.1 0
#differential *Orb0 29 0 0 0 0 0.1 0
#absolute *Orb0 27 0 0 0 0 0 0
#vel_scale *Orb0 0 -1.0 0.5 1.0
#rot_scale *Orb0 0 -1.0 0.5 1.0
#end
################################################################################
# 3Space Tracker. Runs a Polhemus 3Space (not Fastrak) tracker that is attached
# to a serial port on this machine. Arguments:
# char name_of_this_device[]
# char name_of_serial_device[]
# int baud_rate_of_serial_device
#vrpn_Tracker_3Space Tracker0 /dev/ttyS0 19200
################################################################################
################################################################################
# Non-tracker devices. Lines are provided here for the various non-tracker servers
# that can be started.
################################################################################
# Example Dial server. This is a "device" that reports constant rotations for
# each of its dials at the specified rate. It can be used to verify connections
# are working and for other tests of VRPN. There are four arguments:
# char name_of_this_device[]
# int number_of_dials
# float rate_at_which_the_dials_spin (revolutions/second)
# float rate_at_which_to_report_updates (udpates/second)
#vrpn_Dial_Example Dial0 2 2.0 10.0
################################################################################
# CerealBox dial/button/analog. Runs a BG Systems CerealBox device that attaches
# to a serial port on this machine. As of VRPN version 04.07, 19200 is the
# only supported baud rate. The driver has been tested on an LV824-F-8e device.
# Arguments:
# char name_of_this_device[]
# char name_of_serial_device[]
# int baud_rate_of_serial_device
# int number_of_buttons_to_read (starting from 0)
# int number_of_analogs_to_read
# int number_of_encoders_to_read
#vrpn_CerealBox Cereal0 /dev/cua0 19200 8 8 8
################################################################################
# Magellan button/analog. Runs a Logitech Magellan device that attaches
# to a serial port on this machine. As of VRPN version 04.12, 9600 is the
# only supported baud rate.
#
# Note that if you want to use the Magellan as a tracking device, you will
# need to run a vrpn_Tracker_AnalogFly device that listens to its analog
# outputs and converts them into tracker reports
#
# John Stone added support for the SpaceBalls in version 06.03, an example
# startup is shown below.
#
# Julien Brisset discovered how to make this work with a slightly older version
# of the Magellan. If the example Magellan line doesn't work, add 'altreset' to
# the line to use the alternative reset string for the device.
#
# NOTE: You should NOT run the driver that comes with the Magellan, since the
# VRPN driver opens the serial port and communicates with the device directly.
# If the Magellan driver from the manufacturer is running, then VRPN will not
# be able to open the port.
#
# Arguments:
# char name_of_this_device[]
# char name_of_serial_device[]
# int baud_rate_of_serial_device
# char "altreset" {Optional, for older Magellans}
#vrpn_Magellan Magellan0 COM1 9600
#vrpn_Magellan Magellan0 /dev/ttyS0 9600 altreset
#vrpn_Spaceball Spaceball0 /dev/ttyS0 9600
################################################################################
# NRL Immersion Box dial/button/analog. Runs a Immersion Interface Box device
# attached to a serial port. As of March 28, 2000 code to read the analog and
# angle encoders has not been implemented. Also, baud rate on many SGI's is
# limited to 38400, but I have run the ibox at 115200 on PCs.
# char name_of_this_device[]
# char name_of_serial_device[]
# int baud_rate_of_serial_device
# int number_of_buttons_to_read (i.e. 4 ==> 0,1,2,3)
# int number_of_analogs_to_read
# int number_of_encoders_to_read
#vrpn_ImmersionBox ibox /dev/ttyd2 38400 4 0 0
#vrpn_ImmersionBox ibox com1 115200 4 0 0
################################################################################
# Wands button/analog, driver from Brown University. Runs a Wanda device
# attached to a serial port.
#
# Arguments:
# char name_of_this_device[]
# char name_of_serial_port_to_use[]
# int baud_rate_of_serial_device
# float minimum_update_rate
#vrpn_Wanda Wanda /dev/ttyd2 1200 60.0
#vrpn_Wanda Wanda COM2 1200 60.0
################################################################################
# Radamec Serial Position Interface analog. Camera tracker that attaches
# to a serial port on this machine. Note that for normal operation, 38400 is the
# only supported baud rate.
#
# Note that if you want to use the Radamec SPI as a tracking device, you will
# need to run a vrpn_Tracker_AnalogFly device (of the absolute variety)
# that listens to its analog outputs and converts them into tracker reports.
#
# Arguments:
# char name_of_this_device[]
# char name_of_serial_port[]
# int baud_rate_of_serial_port
#vrpn_Radamec_SPI Analog0 /dev/ttyS16 38400
################################################################################
# Zaber linear positioning element analog that attaches
# to a serial port on this machine.
#
# Note that if you want to use the Zaber as a tracking device, you will
# need to run a vrpn_Tracker_AnalogFly device (of the absolute variety)
# that listens to its analog outputs and converts them into tracker reports.
#
# Arguments:
# char name_of_this_device[]
# char name_of_serial_port[]
#vrpn_Zaber Analog0 COM1
################################################################################
# SGI Dial and Button box, raw interface. Runs a dial-and-button box from SGI,
# talking to it through the raw serial interface (not using the GL interface
# supplied by SGI). This allows the box to be opened even if there is nobody
# logged on at the console. Note that to use this on an SGI, you will need to
# configure the port as a serial device, not as a button device, to get it to
# run. Arguments:
# char name_of_this_device[]
# char name_of_serial_device[]
# [list of buttons to treat as toggles] int button_to_toggle
#vrpn_raw_SGIBox Sgibox0 /dev/ttyS0 0 1 2 3
################################################################################
# SGI Dial and Button box, cooked interface. Runs a dial-and-button box from SGI,
# talking to it through the GL interface supplied by SGI. Note that this can
# only be used on an SGI, and the serial port must be configured as a dial/button
# device and the dial/button server from SGI must be running to use it. Arguments:
# char name_of_this_device[]
# [list of buttons to treat as toggles] int button_to_toggle
#vrpn_SGIBOX Sgibox0 1 2
################################################################################
# UNC Python button device. UNC has developed a custom button input device, which
# is a 5-button controller that attaches to a parallel port and uses the sense
# lines to return the state of the buttons. This runs the device. Note that on
# Windows NT, you need to have installed the GiveIO driver for this code to
# work. It also works on Linux (no extra drivers needed), but on no other
# architecture. Arguments:
# char name_of_this_device[]
# int parallel_port_to_use_starting_with_1
#vrpn_Button_Python Button0 1
################################################################################
# UNC Joystick driver. UNC has developed a custom-build joybox, with 7 analog
# and 2 button inputs (two 3-axis joysticks and a slider, with a button on top
# of each joystick). This will drive one of these devices, which attaches to
# a serial port on this computer. I'm not sure what the baud rate should be;
# David Harrison might know.
# This driver can be used in conjunction with the JoyFly driver to produce a
# tracker that uses the joystick to fly around. Arguments:
# char name_of_this_device[]
# char name_of_serial_device[]
# int baud_rate_of_serial_device
# float minimum_update_rate_from_analogs_even_if_they_dont_move
#vrpn_Joystick Joybox0 /dev/ttyd1 19200 10.0
################################################################################
# Linux Joystick. Interface to the Linux Joystick driver by Vojtech Pavlik
# included in several Linux distributions. The server code has been tested
# with Linux Joystick driver version 1.2.14. Yet, there is no way how to
# map a typical joystick's zillion buttons and axes on few buttons and axes
# really used. Unfortunately, even joysticks of the same kind can have
# different button mappings from one to another.
# Arguments:
# char name_of_this_device[]
# char name_of_joystick_device[]
#vrpn_Joylin Joylin0 /dev/js0
################################################################################
# Fakespace Pinch Glove. Drives a Fakespace Pinch Glove device connected to a
# serial port on this machine. This device has ten buttons-two hands and five
# fingers on each hand. Buttons 0-4 are fingers for the right hand-thumb first
# and pinkie last- while buttons 5-9 are for the left hand-thumb first. The
# Button is ON when it is touching another finger. Therefore there cannot
# be just one Button ON. Arguments:
# char name_of_this_device[]
# char name_of_serial_device[]
# int baud_rate_of_serial_device
#vrpn_Button_PinchGlove PinchGlove0 COM1 9600
################################################################################
# Adrienne Electronics Corporation PCI time code driver. The PCI-VITC board
# for which this driver was developed reads in VITC time codes from an input
# signal. This will drive one of these devices.
# Arguments:
# char name_of_this_device[]
#vrpn_TimeCode_Generator TimeGen0
################################################################################
# 5DT glove. Drive a 5dt glove connected on a serial Port. This device uses
# optical fiber to get the finger position. Not all the 5dt gloves are available
# now.
# 2 modes are driven: the first one let the driver get data from the glove
# when requested (we advise this mode). The second one makes the glove send
# data continuously. This mode may saturate the input buffer.
# The manual states that there will be 9 bytes per report, but one group
# has found that they get an extra one: 0x55 at the end of each report.
# So, you can choose whether to use 9 (the default) or 10 now.
# Gesture management is not implemented yet nor the mouse emulation mode
# arguments:
# char name_of_this_device[]
# char name_of_serial_device[]
# int baud_rate_of_serial_device
# int mode_of_data_reporting (1 = on request, 2 = continuously)
# int ten_bytes_per_report (0 = no, use 9; 1 = yes)
#vrpn_5dt glove_5dt /dev/ttyS0 19200 1 0
#vrpn_5dt glove_5dt COM1 19200 1 0
################################################################################
# NRL Serial Mouse. A device made by wiring buttons in parallel with the buttons
# on a serial mouse. Both mousesystems or microsoft mouse protocols are
# supported. Note that the server code makes the connection at the standard
# 1200 baud. The mouse can be plugged into any serial port -- this driver goes
# directly through the raw port and does not use the built-in mouse drivers.
# NOTE: The middle button on the 3button type is toggled by moving the mouse
# on a surface while not toggling the other two buttons, strange as this may
# seem. The motion of the mouse is not reported, only the buttons.
#vrpn_Button_SerialMouse Button0 /dev/ttyd1 mousesystems
#vrpn_Button_SerialMouse Button0 /dev/ttyd1 3button
#vrpn_Button_SerialMouse Button0 COM1 mousesystems
#vrpn_Button_SerialMouse Button0 COM1 3button
################################################################################
# NRL TNG3. (Totally Neat Gadget) A device made by mindtel, available from
# pulsar.org. Powered off the serial port control lines, the TNG3 has 8 digital
# and 8 analog inputs. Analog resolution is 8 bits. Baud rate fixed internally
# at 19200.
# char name_of_this_device[]
# char name_of_serial_device[]
# int number_of_buttons_to_read (i.e. 8 ==> 0,1,2,3,4,5,6,7)
# int number_of_analogs_to_read
#vrpn_Tng3 tng3name /dev/ttyd2 4 0
#vrpn_Tng3 tng3name com1 8 8
#vrpn_Tng3 tng3name com1 1 1
################################################################################
# Microsoft DirectX compatible force-feedback joystick (or non-force-feedback
# joystick).
# char name_of_this_device[]
# int number of times per second to read from the device
# int number of times per second to update force (0 for non-force device)
#vrpn_DirectXFFJoystick Joystick0 60 200
#vrpn_DirectXFFJoystick Joystick0 60 0
################################################################################
# Manager for joysticks under windows using standard win32 calls.
# for force feedback support, see DirectX joystick above
#
# Arguments:
# char name_of_this_device[]
# int joystick Id
# (1 for first joystick JOYSTICKID1 or 2 for second JOYSTICKID2 only)
# int number of times per second to read from the device
# int readmode : 0 = raw data;
# 1 = 0,1 normalized data;
# 2=-1,1 normalized data
# int percentage (0 to 100) of deadzone (used mode 1 and 2 only)
#vrpn_Joywin32 joyWin32 1 60 2 35
################################################################################
# Global Haptics GeoOrb serial-line device that contains a number of buttons,
# a thumbwheel, and a trackball. For current devices, only 19200 baud works.
# Arguments:
# char name_of_this_device[]
# char name_of_serial_device[]
# int baud_rate_of_serial_device
#vrpn_GlobalHapticsOrb Orb0 COM1 19200
################################################################################
# SensAble Technologies Phantom force-feedback device opened using the
# GHOST software developer's kit. For Phantom Desktop systems, you don't
# need to have the user establish the reset position. For the Premium models,
# you do.
# Arguments:
# char name_of_this_device[]
# int establish_reset_position (0 or 1)
# float rate_to_send_tracker_reports
#vrpn_Phantom Phantom 0 60.0
##############################################################################
# Virtual Presence Joystick tracker device. (http://www.vrweb.com)
# Use this driver to read the button states,
# use Flock-of-Birds driver for the position/orientation state
#
# Arguments:
# char name_of_this_device[]
# char name_of_serial_device[]
# int baud_rate_of_serial_device
#vrpn_VPJoystick VPJoystick0 /dev/ttyS0 9600
################################################################################
# Advanced Realtime Tracking GmbH (http://www.ar-tracking.de) DTrack client
#
# creates as many vrpn_Tracker as there are bodies or flysticks, starting with
# the bodies.
# creates 2 analogs per flystick
# creates 8 buttons per flystick
#
# NOTE: numbering of flystick buttons differs from DTrack documentation
#
# Arguments:
# char name_of_this_device[]
# int udp_port (DTrack sends data to this udp port)
# float time_to_reach_joy (see below)
#
# Optional arguments:
# int number_of_bodies, number_of_flysticks (fixed numbers of bodies and flysticks)
# int renumbered_ids[] (vrpn_Tracker IDs of bodies and flysticks)
# char "-" (activates tracing; always last argument)
#
# NOTE: time_to_reach_joy is the time needed to reach the maximum value of the
# joystick
# (1.0 or -1.0) when the corresponding button is pressed (one of the last
# buttons amongst the 8)
#
# NOTE: if fixed numbers of bodies and flysticks should be used, both arguments
# number_of_bodies and number_of_flysticks have to be set
#
# NOTE: renumbering of tracker IDs is only possible, if fixed numbers of bodies and
# flysticks are set; there has to be an argument present for each
# body/flystick
#vrpn_Tracker_DTrack DTrack 5000 0.5
#vrpn_Tracker_DTrack DTrack 5000 0.5 2 2
#vrpn_Tracker_DTrack DTrack 5000 0.5 2 2 2 1 0 3
################################################################################
# National Instruments Analog Output server. This will open the board whose
# name is specified, configure the number of channels specified, and set the
# polarity and maximum voltage range at which to drive the channels.
#
# Arguments:
# char vrpn_name_for_this_device[]
# char name_of_NI_board[]
# int number_of_channels
# int polarity : 0 = unipolar, 1 = bipolar
# float min_voltage
# float max_voltage
#vrpn_NI_Analog_Output Analog_XY DAQCard-6036E 2 0 -10.0 10.0
#vrpn_NI_Analog_Output Analog_ZTweeze DAQCard-6036E 2 0 -10.0 10.0
################################################################################
# Analog Poser. This is a poser that is intended to be used on top of
# an analog output (perhaps a National Instruments board), whose outputs
# directly drive the position of some actuated stage. It could be used on top
# of any analog output device, in fact. This device basically takes in poses
# and puts out analog outputs.
# One analog channel is associated with each axis (X, Y, Z) and rotation about
# each axis (RX, RY, RZ). For each axis, the position (meters) is converted into
# a voltage; the orientation is mapped from a quaternion into Euler angles and
# each of the Euler angles is converted into a voltage (XXX Orientation is not yet
# implemented; the RX,RY, and RZ values must be specified but they are not used).
# XXX Velocity and orientation velocity are not yet supported.
# Any axis can be disabled by setting the name of its associated device to the
# string "NULL".
#
# Arguments:
# char vrpn_name_for_this_device[]
# char vrpn_name_of_the_analog_output_to_use[]
# (Preface with a * if it uses the same connection)
# [six lines follow, one for X Y Z RX RY RZ, each with:
# char axis_name[] (X Y Z RX RY RZ in that order)
# int channel_of_analog_output_device (First channel is channel 0)
# float offset
# float scale
# float min_value of workspace
# float max_value of workspace
# ]
#vrpn_Poser_Analog Poser0
#X *Analog_XY 0 0.0 1.0 -10 10
#Y *Analog_XY 1 0.0 1.0 -10 10
#Z *Analog_ZTweeze 0 0.0 1.0 -10 10
#RX NULL 0 0.0 1.0 -10 10
#RY NULL 0 0.0 1.0 -10 10
#RZ NULL 0 0.0 1.0 -10 10
################################################################################
# Nikon microscope connected to PC via serial port. Currently only controls
# the focus of the microscope using an analogout and reads the focus position
# using an analog.
#
# Arguments:
# char name_of_this_device[]
# char name_of_serial_device[]
vrpn_nikon_controls Focus COM2
################################################################################
# Tektronix 4662 plotter. Attaches to a serial port. Acts as both a poser and
# a tracker. Reports positions 4x per second plus when a move command completes.
# Multiple move commands issued before they complete will result in only the last
# one being executed.
#
# Arguments:
# char name_of_this_device[]
# char name_of_serial_device[]
# int baud_rate_of_serial_device
#vrpn_Tek4662 Tek4662 COM1 1200