[IGSTK-Developers] Re: Questions about IGSTK

David Gobbi dgobbi at atamai.com
Thu Apr 5 14:38:57 EDT 2007


Some of these things are a judgment call for the systems integrator, not 
us, to make, based on the actual tracking inaccuracies that result from 
the thermal instabilities.

For instance, if image guidance is just being used to plan a craniotomy, 
then the needed accuracy is much less than would be required to place a 
pedicle screw into the spine.  In the former instance, if the systems 
integrator has determined that the thermal stabilization is not a 
concern, then they needn't include it in their protocol.

 - David




Kevin Gary wrote:
> I'm no tracker expert, but I am curious to know whether this behavior is
> reflected in our State Machine for this component?
>
> KG
>
>
> Luis Ibanez wrote:
>>
>> Hi Haiying
>>
>> Please note also that the documentation of the Polaris Tracker
>> states that you should wait about 20 minutes after turning on
>> the tracker for it to reach thermal stability.
>>
>> Before that time, the measurements that you take are not reliable.
>>
>>
>>   Regards,
>>
>>
>>      Luis
>>
>>
>> --------------------
>> Patrick Cheng wrote:
>>> Hi Haiying,
>>>
>>> 1. When you ccmake IGSTK, if you toggle to show the advanced values, 
>>> you should be able to see where the serial port value is being set.
>>>
>>> In the CMakeLists.txt file:
>>> IF(WIN32)
>>>   SET(IGSTK_SERIAL_PORT_0 "COM1:" CACHE STRING "Device name for 
>>> serial port 0")
>>>   SET(IGSTK_SERIAL_PORT_1 "COM2:" CACHE STRING "Device name for 
>>> serial port 1")
>>>   SET(IGSTK_SERIAL_PORT_2 "COM3:" CACHE STRING "Device name for 
>>> serial port 2")
>>>   SET(IGSTK_SERIAL_PORT_3 "COM4:" CACHE STRING "Device name for 
>>> serial port 3")
>>>   SET(IGSTK_SERIAL_PORT_4 "COM5:" CACHE STRING "Device name for 
>>> serial port 4")
>>>   SET(IGSTK_SERIAL_PORT_5 "COM6:" CACHE STRING "Device name for 
>>> serial port 5")
>>>   SET(IGSTK_SERIAL_PORT_6 "COM7:" CACHE STRING "Device name for 
>>> serial port 6")
>>>   SET(IGSTK_SERIAL_PORT_7 "COM8:" CACHE STRING "Device name for 
>>> serial port 7")
>>> ELSE(WIN32)
>>>   SET(IGSTK_SERIAL_PORT_0 "/dev/ttyS0" CACHE STRING
>>>       "Device name for serial port 0")
>>>   SET(IGSTK_SERIAL_PORT_1 "/dev/ttyS1" CACHE STRING
>>>       "Device name for serial port 1")
>>>   SET(IGSTK_SERIAL_PORT_2 "/dev/ttyS2" CACHE STRING
>>>       "Device name for serial port 2")
>>>   SET(IGSTK_SERIAL_PORT_3 "/dev/ttyS3" CACHE STRING
>>>       "Device name for serial port 3")
>>>   SET(IGSTK_SERIAL_PORT_4 "/dev/ttyS4" CACHE STRING
>>>       "Device name for serial port 4")
>>>   SET(IGSTK_SERIAL_PORT_5 "/dev/ttyS5" CACHE STRING
>>>       "Device name for serial port 5")
>>>   SET(IGSTK_SERIAL_PORT_6 "/dev/ttyS6" CACHE STRING
>>>       "Device name for serial port 6")
>>>   SET(IGSTK_SERIAL_PORT_7 "/dev/ttyS7" CACHE STRING
>>>       "Device name for serial port 7")
>>> ENDIF(WIN32)
>>>
>>> This is where these values are being set, you can change the values 
>>> of course through the cmake process.
>>>
>>> Please double check your ccmake console to see if those values are 
>>> there.
>>>
>>> 2. It does take some time to get the tracker running, and the first 
>>> several transform might be invalid, but 20s seems to be way too long 
>>> according to my experiences, normally it's around 5,6 seconds.
>>>
>>> 3. I don't have answer to this.
>>>
>>> Patrick
>>>
>>> hliu at bwh.harvard.edu wrote:
>>>
>>>> Hi All,
>>>>
>>>> Thank you for your ideas and suggestions. I was initially trying to 
>>>> work
>>>> on a Dell laptop with a USB-to-serial converter. Later, I decided to
>>>> switch to a Dell desktop for my experiment on IGSTK with Polaris. Here
>>>> come my current settings:
>>>>
>>>> Dell with 2 serial ports, Fedora Core 5 installed.
>>>>
>>>>
>>>> Now I got the system running; I can pull tracking data from the 
>>>> Polaris.
>>>> Here are some notes I wrote from my debugging process:
>>>>
>>>> 1. By default, after I compile IGSTK on Linux, all serial ports are 
>>>> set to
>>>> empty strings in igstkConfigure.h in the IGSTK build directory. It 
>>>> seems
>>>> the values in CMakeLists.txt are not extracted properly. That's why I
>>>> could not open any port at the beginning of my experiment. I'm not 
>>>> sure if
>>>> I need to configure something before compiling.
>>>>
>>>> #define IGSTK_SERIAL_PORT_0 ""
>>>> #define IGSTK_SERIAL_PORT_1 ""
>>>> #define IGSTK_SERIAL_PORT_2 ""
>>>> #define IGSTK_SERIAL_PORT_3 ""
>>>> #define IGSTK_SERIAL_PORT_4 ""
>>>> #define IGSTK_SERIAL_PORT_5 ""
>>>> #define IGSTK_SERIAL_PORT_6 ""
>>>> #define IGSTK_SERIAL_PORT_7 ""
>>>>
>>>> 2. I have to wait ~20 seconds to pull tracking data from Polaris 
>>>> after  Tracker->RequestStartTracking() is issued. Otherwise, I will 
>>>> get "zero"
>>>> transform. By then, the light on the tool is stable green.
>>>>
>>>> 3. Function call "tcgetattr(m_PortHandle,&t)" seems failing on 
>>>> Fedora Core 6.
>>>>
>>>>
>>>> Thanks again,
>>>>
>>>>
>>>>
>>>> Haiying
>>>>
>>>>
>>>>
>>>>
>>>>> Hi Haiying,
>>>>>
>>>>> I might know what the problem is.  You say that you are using a
>>>>> USB-to-serial converter.  When you use one of these, the serial port
>>>>> does not show up as /dev/ttyS0 but instead as /dev/ttyUSB0.
>>>>>
>>>>> Some of the USB-to-serial converters out there are supported in the
>>>>> stock linux kernel, and should be plug-and-play.   Definitely  the
>>>>> Keyspan USA19HS and USA19QW are supported, I use these ones all the
>>>>> time.  With some other converters, you might have to specify some 
>>>>> driver
>>>>> module parameters, let me know which converter you are using and I 
>>>>> might
>>>>> be able to help.
>>>>>
>>>>> By default, IGSTK uses /dev/ttyS0 as the serial device.  You can 
>>>>> change
>>>>> this by running cmake on IGSTK.
>>>>>
>>>>> In cmake, set IGSTK_SERIAL_PORT_0 to /dev/ttyUSB0
>>>>>
>>>>> Let us know how it goes.
>>>>>
>>>>>  - David
>>>>>
>>>>>
>>>>>
>>>>> Julien Jomier wrote:
>>>>>
>>>>>> Hello,
>>>>>>
>>>>>> I just tried the Polaris tracker on our linux box (Dell/RedHat) and
>>>>>> the code works great. I was able to run the OneViewAndTracking 
>>>>>> example
>>>>>> as well.
>>>>>> Our box as a serial port, so I guess this doesn't help. I suspect 
>>>>>> the
>>>>>> USB-to-serial converter to be the problem in your case. Maybe NDI
>>>>>> provides some testing tools for Linux (I didn't have time to
>>>>>> investigate this).
>>>>>>
>>>>>> Let me know if I should try anything else,
>>>>>>
>>>>>> Julien
>>>>>>
>>>>>> Patrick Cheng wrote:
>>>>>>
>>>>>>> Hi Haiying,
>>>>>>>
>>>>>>> The code looks alright to me. I have no clue why it can not open 
>>>>>>> the
>>>>>>> serial port unless I run the test. I will try to setup the 
>>>>>>> system on
>>>>>>> our linux machine here (I am a pc guy).
>>>>>>>
>>>>>>> Meanwhile, Andinet and Luis, I think your guys have the tracking
>>>>>>> system connected to linux machine, could you try this code at your
>>>>>>> convenience? This is part of the Slicer-IGSTK integration project,
>>>>>>> it's very important to us.
>>>>>>>
>>>>>>> Thank you,
>>>>>>>
>>>>>>> Patrick
>>>>>>>
>>>>>>> hliu at bwh.harvard.edu wrote:
>>>>>>>
>>>>>>>> Patrick,
>>>>>>>>
>>>>>>>> Many thanks for your help.
>>>>>>>>
>>>>>>>> Indeed, the serial port seemed not opened (the Polaris is 
>>>>>>>> connected
>>>>>>>> to my
>>>>>>>> computer on ttyS0). I tried all possible port numbers (0 ... 7)
>>>>>>>> supported
>>>>>>>> by IGSTK, I got the same error message.
>>>>>>>>
>>>>>>>> I'm attaching the code snippet (it's copied from your test 
>>>>>>>> file) I'm
>>>>>>>> using
>>>>>>>> in Slicer to perform the serial port connection. Could you please
>>>>>>>> scan it
>>>>>>>> a bit and point to me any errors?
>>>>>>>>
>>>>>>>>
>>>>>>>> Thank you very much,
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> Haiying
>>>>>>>>
>>>>>>>>
>>>>>>>>> Hi Haiying,
>>>>>>>>>
>>>>>>>>> 1.
>>>>>>>>> Looking at the logger file from serial communication,
>>>>>>>>>
>>>>>>>>> 1175527044.46198701858520507812  :    (DEBUG) State transition is
>>>>>>>>> being
>>>>>>>>> made : SerialCommunicationForPosix  PointerID 0x212e150
>>>>>>>>> AttemptingToOpenPortState(10)  with FailureInput(22) --->
>>>>>>>>> IdleState(9).
>>>>>>>>>
>>>>>>>>> It looks like the serial port is not being opened. Did you try 
>>>>>>>>> some
>>>>>>>>> other port number? There are some confusion in terms of numbering
>>>>>>>>> of the
>>>>>>>>> serial port. For instance, in Windows, COM1 is
>>>>>>>>> SerialCommunication::PortNumber0.
>>>>>>>>>
>>>>>>>>> 2.
>>>>>>>>> In state machine, we have a mechanism to check if the state-input
>>>>>>>>> transition table is complete. Some times programmer just 
>>>>>>>>> provide the
>>>>>>>>> possible combination of state-input transition, some times, in 
>>>>>>>>> this
>>>>>>>>> case, if the open communication failed, it will not enter into 
>>>>>>>>> the
>>>>>>>>> next
>>>>>>>>> state, and if you sent some inputs to the state machine, it might
>>>>>>>>> complain, the transition if not being defined. Our guide line 
>>>>>>>>> is to
>>>>>>>>> fully populate the transition table, and output error messages.
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> Patrick
>>>>>>>>>
>>>>>>>>> hliu at bwh.harvard.edu wrote:
>>>>>>>>>
>>>>>>>>>> Hi Patrick,
>>>>>>>>>>
>>>>>>>>>> Thank you very much for your answers. Now I have more questions.
>>>>>>>>>>
>>>>>>>>>> A polaris is connected through a serial port (/dev/ttyS0) to 
>>>>>>>>>> a Dell
>>>>>>>>>> desktop with Fedora core 5 installed. The "ttyS0" has been made
>>>>>>>>>> writable.
>>>>>>>>>> To test the connection, I used another program to get tracking
>>>>>>>>>> data from
>>>>>>>>>> the Polaris; it worked well.
>>>>>>>>>>
>>>>>>>>>> Then, I embedded the part of the code in
>>>>>>>>>> IGSTK/Testing/igstkPolarisTrackerTest.cxx into Slicer. Since the
>>>>>>>>>> polaris
>>>>>>>>>> is connected on /dev/ttyS0, I use port 0 in
>>>>>>>>>> "serialComm->SetPortNumber(igstk::SerialCommunication::PortNumber0);" 
>>>>>>>>>>
>>>>>>>>>> Keep
>>>>>>>>>> other parameters unchanged.
>>>>>>>>>>
>>>>>>>>>> After running Slicer, I saved the output in these two files 
>>>>>>>>>> which
>>>>>>>>>> are
>>>>>>>>>> attached:
>>>>>>>>>>
>>>>>>>>>> igstkLoggerOutput.txt -- from the logger
>>>>>>>>>> igtskScreenCout.txt -- screen text from cout
>>>>>>>>>>
>>>>>>>>>> It seems I could not get tracking data from polaris. I notice
>>>>>>>>>> errors:
>>>>>>>>>>
>>>>>>>>>> 1. It complains the serial port is not writable. But I already
>>>>>>>>>> changed
>>>>>>>>>> the
>>>>>>>>>> permission. Did I use the wrong port number?
>>>>>>>>>>
>>>>>>>>>> 2. A lot of "No transitions have been defined for current 
>>>>>>>>>> state."
>>>>>>>>>> What
>>>>>>>>>> are
>>>>>>>>>> they?
>>>>>>>>>>
>>>>>>>>>> Thank you very much for any advice.
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> Haiying
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>> Hi Haiying,
>>>>>>>>>>>
>>>>>>>>>>> 1) IGSTK supports serial communication, when you use 
>>>>>>>>>>> serial-to-usb
>>>>>>>>>>> adapter, your external use device will just look like a serial
>>>>>>>>>>> device
>>>>>>>>>>> through port mapping.
>>>>>>>>>>>
>>>>>>>>>>> 2) For linux, you have to install some kernel level driver 
>>>>>>>>>>> to do
>>>>>>>>>>> the
>>>>>>>>>>> USB-to-Serial conversion. There are some instructions in 
>>>>>>>>>>> "Polaris
>>>>>>>>>>> User
>>>>>>>>>>> Guide" page 23
>>>>>>>>>>>
>>>>>>>>>>> 3) We normally use the toolbox from NDI to test the device
>>>>>>>>>>> connection
>>>>>>>>>>> before trying our own code
>>>>>>>>>>>
>>>>>>>>>>> 4) Error reporting from the hardware is a feature we are 
>>>>>>>>>>> going to
>>>>>>>>>>> add
>>>>>>>>>>> to
>>>>>>>>>>> the toolkit in the future.
>>>>>>>>>>>
>>>>>>>>>>> Let me know if you need any help with setting up the system.
>>>>>>>>>>>
>>>>>>>>>>> Thank you,
>>>>>>>>>>>
>>>>>>>>>>> Patrick
>>>>>>>>>>>
>>>>>>>>>>> hliu at bwh.harvard.edu wrote:
>>>>>>>>>>>
>>>>>>>>>>>> Hi Patrick,
>>>>>>>>>>>>
>>>>>>>>>>>> My name is Haiying Liu, who is working with Dr. Noby Hata on
>>>>>>>>>>>> Slicer
>>>>>>>>>>>> engineering for Image Guided Therapy at Brigham and Women's
>>>>>>>>>>>> Hospital.
>>>>>>>>>>>>
>>>>>>>>>>>> I'm currently trying to integrate IGSTK into Slicer3. The
>>>>>>>>>>>> following
>>>>>>>>>>>> describes what I have now:
>>>>>>>>>>>>
>>>>>>>>>>>> 1) NDI Polaris tracking device
>>>>>>>>>>>> 2) Dell laptop (Inspiron 1501) with Fedora core 6 installed
>>>>>>>>>>>>
>>>>>>>>>>>> My dell doesn't have any serial port; I'm using a 
>>>>>>>>>>>> serial-to-usb
>>>>>>>>>>>> converter
>>>>>>>>>>>> and connect polaris to the computer thru one of the USB ports.
>>>>>>>>>>>> Here
>>>>>>>>>>>> come
>>>>>>>>>>>> my questions:
>>>>>>>>>>>>
>>>>>>>>>>>> 1) Does IGSTK support a computer without a serial port?
>>>>>>>>>>>> 2) For my case, which port number should I use?
>>>>>>>>>>>> 3) How do I know the connection between polaris and laptop is
>>>>>>>>>>>> good?
>>>>>>>>>>>> 4) How I get error messages when something goes wrong?
>>>>>>>>>>>>
>>>>>>>>>>>> Thank you very much,
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> Haiying
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>> ------------------------------------------------------------------------ 
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> 1175527044.46130800247192382812  :    (DEBUG)
>>>>>>>>>>> SerialCommunication::OpenCommunication called ...
>>>>>>>>>>> 1175527044.46185088157653808594  :    (DEBUG) State 
>>>>>>>>>>> transition is
>>>>>>>>>>> being
>>>>>>>>>>> made : SerialCommunicationForPosix  PointerID 0x212e150
>>>>>>>>>>> IdleState(9)
>>>>>>>>>>> with OpenPortInput(24) ---> AttemptingToOpenPortState(10).
>>>>>>>>>>> 1175527044.46188211441040039062  :    (DEBUG)
>>>>>>>>>>> SerialCommunicationForPosix::InternalOpenPort called ...
>>>>>>>>>>> 1175527044.46198701858520507812  :    (DEBUG) State 
>>>>>>>>>>> transition is
>>>>>>>>>>> being
>>>>>>>>>>> made : SerialCommunicationForPosix  PointerID 0x212e150
>>>>>>>>>>> AttemptingToOpenPortState(10)  with FailureInput(22) --->
>>>>>>>>>>> IdleState(9).
>>>>>>>>>>> 1175527044.471179962158203125  :    (DEBUG) PolarisTracker::
>>>>>>>>>>> Entered
>>>>>>>>>>> SetCommunication ...
>>>>>>>>>>> 1175527044.47123694419860839844  :    (DEBUG) UpdateParameters
>>>>>>>>>>> called
>>>>>>>>>>> ...
>>>>>>>>>>> 1175527044.47128009796142578125  :    (DEBUG) State 
>>>>>>>>>>> transition is
>>>>>>>>>>> being
>>>>>>>>>>> made : SerialCommunicationForPosix  PointerID 0x212e150
>>>>>>>>>>> IdleState(9)
>>>>>>>>>>> with UpdateParametersInput(26) ---> IdleState(9).
>>>>>>>>>>> 1175527044.471302032470703125  :    (DEBUG) PolarisTracker::
>>>>>>>>>>> Exiting
>>>>>>>>>>> SetCommunication ...
>>>>>>>>>>> 1175527044.47134804725646972656  :    (DEBUG)
>>>>>>>>>>> igstk::Tracker::RequestOpen called...
>>>>>>>>>>> 1175527044.4714450836181640625  :    (DEBUG) State 
>>>>>>>>>>> transition is
>>>>>>>>>>> being
>>>>>>>>>>> made : PolarisTracker  PointerID 0x2110910 IdleState(36)  with
>>>>>>>>>>> EstablishCommunicationInput(46) --->
>>>>>>>>>>> AttemptingToEstablishCommunicationState(37).
>>>>>>>>>>> 1175527044.47147393226623535156  :    (DEBUG)
>>>>>>>>>>> igstk::Tracker::AttemptToOpenProcessing called ...
>>>>>>>>>>> 1175527044.47149395942687988281  :    (DEBUG)
>>>>>>>>>>> PolarisTracker::InternalOpen called ...
>>>>>>>>>>> 1175527044.4715518951416015625  :    (DEBUG)
>>>>>>>>>>> SerialCommunication::PurgeBuffers called ...
>>>>>>>>>>> 1175527044.47157788276672363281  :    (ERROR) In class
>>>>>>>>>>> SerialCommunicationForPosix No transitions have been defined 
>>>>>>>>>>> for
>>>>>>>>>>> current state and input  State = 9 [IdleState] Input = 30
>>>>>>>>>>> [PurgeBuffersInput]
>>>>>>>>>>> 1175527044.47160506248474121094  :    (DEBUG) UpdateParameters
>>>>>>>>>>> called
>>>>>>>>>>> ...
>>>>>>>>>>> 1175527044.47163105010986328125  :    (DEBUG) State 
>>>>>>>>>>> transition is
>>>>>>>>>>> being
>>>>>>>>>>> made : SerialCommunicationForPosix  PointerID 0x212e150
>>>>>>>>>>> IdleState(9)
>>>>>>>>>>> with UpdateParametersInput(26) ---> IdleState(9).
>>>>>>>>>>> 1175527044.47167801856994628906  :    (DEBUG)
>>>>>>>>>>> SerialCommunication::PurgeBuffers called ...
>>>>>>>>>>> 1175527044.47170305252075195312  :    (ERROR) In class
>>>>>>>>>>> SerialCommunicationForPosix No transitions have been defined 
>>>>>>>>>>> for
>>>>>>>>>>> current state and input  State = 9 [IdleState] Input = 30
>>>>>>>>>>> [PurgeBuffersInput]
>>>>>>>>>>> 1175527044.47228789329528808594  :    (DEBUG)
>>>>>>>>>>> SerialCommunication::Write(INIT:E3A5\x0D, 10) called...
>>>>>>>>>>> 1175527044.47236990928649902344  :    (ERROR) In class
>>>>>>>>>>> SerialCommunicationForPosix No transitions have been defined 
>>>>>>>>>>> for
>>>>>>>>>>> current state and input  State = 9 [IdleState] Input = 28
>>>>>>>>>>> [WriteInput]
>>>>>>>>>>> 1175527044.4724369049072265625  :    (WARNING) Polaris Error 
>>>>>>>>>>> 0x500:
>>>>>>>>>>> Serial port write error
>>>>>>>>>>> 1175527044.47247791290283203125  :    (DEBUG) State 
>>>>>>>>>>> transition is
>>>>>>>>>>> being
>>>>>>>>>>> made : PolarisTracker  PointerID 0x2110910
>>>>>>>>>>> AttemptingToEstablishCommunicationState(37)  with
>>>>>>>>>>> FailureInput(54) --->
>>>>>>>>>>> IdleState(36).
>>>>>>>>>>> 1175527044.47249889373779296875  :    (DEBUG)
>>>>>>>>>>> igstk::Tracker::CommunicationEstablishmentFailureProcessing
>>>>>>>>>>> called ...
>>>>>>>>>>> 1175527044.4726428985595703125  :    (DEBUG)
>>>>>>>>>>> igstk::Tracker::RequestInitialize called ...
>>>>>>>>>>> 1175527044.47266888618469238281  :    (ERROR) In class
>>>>>>>>>>> PolarisTracker
>>>>>>>>>>> No transitions have been defined for current state and input
>>>>>>>>>>> State =
>>>>>>>>>>> 36 [IdleState] Input = 47 [ActivateToolsInput]
>>>>>>>>>>> 1175527044.49376010894775390625  :    (DEBUG)
>>>>>>>>>>> igstk::Tracker::RequestStartTracking called ...
>>>>>>>>>>> 1175527044.49382495880126953125  :    (ERROR) In class
>>>>>>>>>>> PolarisTracker
>>>>>>>>>>> No transitions have been defined for current state and input
>>>>>>>>>>> State =
>>>>>>>>>>> 36 [IdleState] Input = 48 [StartTrackingInput]
>>>>>>>>>>> 1175527044.49386000633239746094  :    (DEBUG)
>>>>>>>>>>> igstk::Tracker::RequestUpdateStatus called ...
>>>>>>>>>>> 1175527044.493885040283203125  :    (ERROR) In class
>>>>>>>>>>> PolarisTracker No
>>>>>>>>>>> transitions have been defined for current state and input  
>>>>>>>>>>> State
>>>>>>>>>>> = 36
>>>>>>>>>>> [IdleState] Input = 49 [UpdateStatusInput]
>>>>>>>>>>> 1175527044.4942989349365234375  :    (DEBUG)
>>>>>>>>>>> igstk::Tracker::RequestUpdateStatus called ...
>>>>>>>>>>> 1175527044.49432492256164550781  :    (ERROR) In class
>>>>>>>>>>> PolarisTracker
>>>>>>>>>>> No transitions have been defined for current state and input
>>>>>>>>>>> State =
>>>>>>>>>>> 36 [IdleState] Input = 49 [UpdateStatusInput]
>>>>>>>>>>> 1175527044.49441099166870117188  :    (DEBUG)
>>>>>>>>>>> igstk::Tracker::RequestUpdateStatus called ...
>>>>>>>>>>> 1175527044.49443697929382324219  :    (ERROR) In class
>>>>>>>>>>> PolarisTracker
>>>>>>>>>>> No transitions have been defined for current state and input
>>>>>>>>>>> State =
>>>>>>>>>>> 36 [IdleState] Input = 49 [UpdateStatusInput]
>>>>>>>>>>> 1175527044.49451899528503417969  :    (DEBUG)
>>>>>>>>>>> igstk::Tracker::RequestUpdateStatus called ...
>>>>>>>>>>> 1175527044.49454402923583984375  :    (ERROR) In class
>>>>>>>>>>> PolarisTracker
>>>>>>>>>>> No transitions have been defined for current state and input
>>>>>>>>>>> State =
>>>>>>>>>>> 36 [IdleState] Input = 49 [UpdateStatusInput]
>>>>>>>>>>> 1175527044.49462604522705078125  :    (DEBUG)
>>>>>>>>>>> igstk::Tracker::RequestUpdateStatus called ...
>>>>>>>>>>> 1175527044.49465203285217285156  :    (ERROR) In class
>>>>>>>>>>> PolarisTracker
>>>>>>>>>>> No transitions have been defined for current state and input
>>>>>>>>>>> State =
>>>>>>>>>>> 36 [IdleState] Input = 49 [UpdateStatusInput]
>>>>>>>>>>> 1175527044.49473309516906738281  :    (DEBUG)
>>>>>>>>>>> igstk::Tracker::RequestUpdateStatus called ...
>>>>>>>>>>> 1175527044.49475789070129394531  :    (ERROR) In class
>>>>>>>>>>> PolarisTracker
>>>>>>>>>>> No transitions have been defined for current state and input
>>>>>>>>>>> State =
>>>>>>>>>>> 36 [IdleState] Input = 49 [UpdateStatusInput]
>>>>>>>>>>> 1175527044.49483990669250488281  :    (DEBUG)
>>>>>>>>>>> igstk::Tracker::RequestUpdateStatus called ...
>>>>>>>>>>> 1175527044.49486494064331054688  :    (ERROR) In class
>>>>>>>>>>> PolarisTracker
>>>>>>>>>>> No transitions have been defined for current state and input
>>>>>>>>>>> State =
>>>>>>>>>>> 36 [IdleState] Input = 49 [UpdateStatusInput]
>>>>>>>>>>> 1175527044.49494910240173339844  :    (DEBUG)
>>>>>>>>>>> igstk::Tracker::RequestUpdateStatus called ...
>>>>>>>>>>> 1175527044.49497509002685546875  :    (ERROR) In class
>>>>>>>>>>> PolarisTracker
>>>>>>>>>>> No transitions have been defined for current state and input
>>>>>>>>>>> State =
>>>>>>>>>>> 36 [IdleState] Input = 49 [UpdateStatusInput]
>>>>>>>>>>> 1175527044.49505710601806640625  :    (DEBUG)
>>>>>>>>>>> igstk::Tracker::RequestUpdateStatus called ...
>>>>>>>>>>> 1175527044.49508190155029296875  :    (ERROR) In class
>>>>>>>>>>> PolarisTracker
>>>>>>>>>>> No transitions have been defined for current state and input
>>>>>>>>>>> State =
>>>>>>>>>>> 36 [IdleState] Input = 49 [UpdateStatusInput]
>>>>>>>>>>> 1175527044.4951629638671875  :    (DEBUG)
>>>>>>>>>>> igstk::Tracker::RequestUpdateStatus called ...
>>>>>>>>>>> 1175527044.49518799781799316406  :    (ERROR) In class
>>>>>>>>>>> PolarisTracker
>>>>>>>>>>> No transitions have been defined for current state and input
>>>>>>>>>>> State =
>>>>>>>>>>> 36 [IdleState] Input = 49 [UpdateStatusInput]
>>>>>>>>>>> 1175527044.49528789520263671875  :    (DEBUG)
>>>>>>>>>>> igstk::Tracker::RequestReset called ...
>>>>>>>>>>> 1175527044.49531292915344238281  :    (ERROR) In class
>>>>>>>>>>> PolarisTracker
>>>>>>>>>>> No transitions have been defined for current state and input
>>>>>>>>>>> State =
>>>>>>>>>>> 36 [IdleState] Input = 51 [ResetInput]
>>>>>>>>>>> 1175527044.49533796310424804688  :    (DEBUG)
>>>>>>>>>>> igstk::Tracker::RequestInitialize called ...
>>>>>>>>>>> 1175527044.49536609649658203125  :    (ERROR) In class
>>>>>>>>>>> PolarisTracker
>>>>>>>>>>> No transitions have been defined for current state and input
>>>>>>>>>>> State =
>>>>>>>>>>> 36 [IdleState] Input = 47 [ActivateToolsInput]
>>>>>>>>>>> 1175527044.49539089202880859375  :    (DEBUG)
>>>>>>>>>>> igstk::Tracker::RequestStartTracking called ...
>>>>>>>>>>> 1175527044.49541497230529785156  :    (ERROR) In class
>>>>>>>>>>> PolarisTracker
>>>>>>>>>>> No transitions have been defined for current state and input
>>>>>>>>>>> State =
>>>>>>>>>>> 36 [IdleState] Input = 48 [StartTrackingInput]
>>>>>>>>>>> 1175527044.495449066162109375  :    (DEBUG)
>>>>>>>>>>> igstk::Tracker::RequestStopTracking called ...
>>>>>>>>>>> 1175527044.49547410011291503906  :    (ERROR) In class
>>>>>>>>>>> PolarisTracker
>>>>>>>>>>> No transitions have been defined for current state and input
>>>>>>>>>>> State =
>>>>>>>>>>> 36 [IdleState] Input = 50 [StopTrackingInput]
>>>>>>>>>>> 1175527044.49550890922546386719  :    (DEBUG)
>>>>>>>>>>> igstk::Tracker::RequestClose called ...
>>>>>>>>>>> 1175527044.4955348968505859375  :    (ERROR) In class
>>>>>>>>>>> PolarisTracker No
>>>>>>>>>>> transitions have been defined for current state and input  
>>>>>>>>>>> State
>>>>>>>>>>> = 36
>>>>>>>>>>> [IdleState] Input = 52 [CloseCommunicationInput]
>>>>>>>>>>> 1175527044.49557209014892578125  :    (DEBUG)
>>>>>>>>>>> SerialCommunication::CloseCommunication called ...
>>>>>>>>>>> 1175527044.49562191963195800781  :    (DEBUG) State 
>>>>>>>>>>> transition is
>>>>>>>>>>> being
>>>>>>>>>>> made : SerialCommunicationForPosix  PointerID 0x212e150
>>>>>>>>>>> IdleState(9)
>>>>>>>>>>> with ClosePortInput(25) ---> IdleState(9).
>>>>>>>>>>>
>>>>>>>>>>> ------------------------------------------------------------------------ 
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> Script started on Mon 02 Apr 2007 11:16:53 AM EDT
>>>>>>>>>>> Unmatched ".
>>>>>>>>>>> th303-d4-5:/projects/birn/hliu/slicer3-trunk/Slicer3-build/bin%
>>>>>>>>>>> bash
>>>>>>>>>>>
>>>>>>>>>>> bash-3.1$ ./Slicer3
>>>>>>>>>>> Set environment:
>>>>>>>>>>> SLICER_HOME=/projects/birn/hliu/slicer3-trunk/Slicer3-build/bin/../ 
>>>>>>>>>>>
>>>>>>>>>>> Starting Slicer:
>>>>>>>>>>> Searching
>>>>>>>>>>> /projects/birn/hliu/slicer3-trunk/Slicer3-build/bin/../lib/Slicer3/Plugins 
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> for shared object plugins.
>>>>>>>>>>> Tested 0 files as shared object plugins. Found 0 new plugins in
>>>>>>>>>>> 0.00152493 seconds.
>>>>>>>>>>> Application does not include the Binary File Descriptor library
>>>>>>>>>>> (BFD).
>>>>>>>>>>> Cannot peek into executables for global symbols.
>>>>>>>>>>> Searching
>>>>>>>>>>> /projects/birn/hliu/slicer3-trunk/Slicer3-build/bin/../lib/Slicer3/Plugins 
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> for command line executable plugins by executing.
>>>>>>>>>>> Tested 0 files as command line executable plugins by executing.
>>>>>>>>>>> Found 0
>>>>>>>>>>> new plugins in 0.000633001 seconds.
>>>>>>>>>>> No plugin modules found. Check your module search path and your
>>>>>>>>>>> Slicer
>>>>>>>>>>> installation.PolarisTrackerTool
>>>>>>>>>>> PolarisTrackerTool (0x210b9e0)
>>>>>>>>>>>   RTTI typeinfo:   igstk::PolarisTrackerTool
>>>>>>>>>>>   Reference Count: 2
>>>>>>>>>>>   Modified Time: 20
>>>>>>>>>>>   Debug: Off
>>>>>>>>>>>   Observers:
>>>>>>>>>>>     none
>>>>>>>>>>>   Transform: Transform (0x210bb38)
>>>>>>>>>>>   RTTI typeinfo:   N5igstk9TransformE
>>>>>>>>>>>   TimeStamp (0x210bb40)
>>>>>>>>>>>   RTTI typeinfo:    N5igstk9TimeStampE
>>>>>>>>>>>   Start Time      = 1.17553e+12
>>>>>>>>>>>   Expiration Time = 1.17553e+12
>>>>>>>>>>>
>>>>>>>>>>>   [0, 0, 0]
>>>>>>>>>>>   [ 0, 0, 0, 1 ]
>>>>>>>>>>>   2.22507e-308
>>>>>>>>>>>
>>>>>>>>>>>   RawTransform: Transform (0x210bba8)
>>>>>>>>>>>   RTTI typeinfo:   N5igstk9TransformE
>>>>>>>>>>>   TimeStamp (0x210bbb0)
>>>>>>>>>>>   RTTI typeinfo:    N5igstk9TimeStampE
>>>>>>>>>>>   Start Time      = 1.17553e+12
>>>>>>>>>>>   Expiration Time = 1.17553e+12
>>>>>>>>>>>
>>>>>>>>>>>   [0, 0, 0]
>>>>>>>>>>>   [ 0, 0, 0, 1 ]
>>>>>>>>>>>   2.22507e-308
>>>>>>>>>>>
>>>>>>>>>>>   ToolCalibrationTransform: Transform (0x210bc08)
>>>>>>>>>>>   RTTI typeinfo:   N5igstk9TransformE
>>>>>>>>>>>   TimeStamp (0x210bc10)
>>>>>>>>>>>   RTTI typeinfo:    N5igstk9TimeStampE
>>>>>>>>>>>   Start Time      = 1.17553e+12
>>>>>>>>>>>   Expiration Time = 1e+300
>>>>>>>>>>>
>>>>>>>>>>>   [0, 0, 0]
>>>>>>>>>>>   [ 0, 0, 0, 1 ]
>>>>>>>>>>>   2.22507e-308
>>>>>>>>>>>
>>>>>>>>>>>   ValidityPeriod: 0
>>>>>>>>>>>
>>>>>>>>>>> Logger output saved here:
>>>>>>>>>>> /spl/tmp/Haiying/HaiyingIGSTKLoggerOutput.txt
>>>>>>>>>>> OpenPortErrorEvent
>>>>>>>>>>> SetCommunication()
>>>>>>>>>>> RequestOpen()
>>>>>>>>>>> TrackerOpenErrorEvent
>>>>>>>>>>> RequestInitialize()
>>>>>>>>>>> PolarisTracker (0x2110910)
>>>>>>>>>>>   RTTI typeinfo:   igstk::PolarisTracker
>>>>>>>>>>>   Reference Count: 2
>>>>>>>>>>>   Modified Time: 33
>>>>>>>>>>>   Debug: Off
>>>>>>>>>>>   Observers:
>>>>>>>>>>>     AnyEvent(Command)
>>>>>>>>>>>   PulseGenerator (0x2112e80)
>>>>>>>>>>>   RTTI typeinfo:   igstk::PulseGenerator
>>>>>>>>>>>   Reference Count: 2
>>>>>>>>>>>   Modified Time: 37
>>>>>>>>>>>   Debug: Off
>>>>>>>>>>>   Observers:
>>>>>>>>>>>     PulseEvent(SimpleMemberCommand)
>>>>>>>>>>>   Frequency: 30
>>>>>>>>>>>   Period: 33.3333
>>>>>>>>>>>
>>>>>>>>>>>   SimpleMemberCommand (0x2114510)
>>>>>>>>>>>   RTTI typeinfo:   itk::SimpleMemberCommand<igstk::Tracker>
>>>>>>>>>>>   Reference Count: 3
>>>>>>>>>>>   Modified Time: 41
>>>>>>>>>>>   Debug: Off
>>>>>>>>>>>   Observers:
>>>>>>>>>>>     none
>>>>>>>>>>>
>>>>>>>>>>>   Number of ports: 12
>>>>>>>>>>>   TrackerPort (0x211d630)
>>>>>>>>>>>   RTTI typeinfo:   igstk::TrackerPort
>>>>>>>>>>>   Reference Count: 1
>>>>>>>>>>>   Modified Time: 51
>>>>>>>>>>>   Debug: Off
>>>>>>>>>>>   Observers:
>>>>>>>>>>>     none
>>>>>>>>>>>   Number of tools: 1
>>>>>>>>>>>   PolarisTrackerTool (0x211cd10)
>>>>>>>>>>>   RTTI typeinfo:   igstk::PolarisTrackerTool
>>>>>>>>>>>   Reference Count: 1
>>>>>>>>>>>   Modified Time: 47
>>>>>>>>>>>   Debug: Off
>>>>>>>>>>>   Observers:
>>>>>>>>>>>     none
>>>>>>>>>>>   Transform: Transform (0x211ce68)
>>>>>>>>>>>   RTTI typeinfo:   N5igstk9TransformE
>>>>>>>>>>>   TimeStamp (0x211ce70)
>>>>>>>>>>>   RTTI typeinfo:    N5igstk9TimeStampE
>>>>>>>>>>>   Start Time      = 1.17553e+12
>>>>>>>>>>>   Expiration Time = 1.17553e+12
>>>>>>>>>>>
>>>>>>>>>>>   [0, 0, 0]
>>>>>>>>>>>   [ 0, 0, 0, 1 ]
>>>>>>>>>>>   2.22507e-308
>>>>>>>>>>>
>>>>>>>>>>>   RawTransform: Transform (0x211ced8)
>>>>>>>>>>>   RTTI typeinfo:   N5igstk9TransformE
>>>>>>>>>>>   TimeStamp (0x211cee0)
>>>>>>>>>>>   RTTI typeinfo:    N5igstk9TimeStampE
>>>>>>>>>>>   Start Time      = 1.17553e+12
>>>>>>>>>>>   Expiration Time = 1.17553e+12
>>>>>>>>>>>
>>>>>>>>>>>   [0, 0, 0]
>>>>>>>>>>>   [ 0, 0, 0, 1 ]
>>>>>>>>>>>   2.22507e-308
>>>>>>>>>>>
>>>>>>>>>>>   ToolCalibrationTransform: Transform (0x211cf38)
>>>>>>>>>>>   RTTI typeinfo:   N5igstk9TransformE
>>>>>>>>>>>   TimeStamp (0x211cf40)
>>>>>>>>>>>   RTTI typeinfo:    N5igstk9TimeStampE
>>>>>>>>>>>   Start Time      = 1.17553e+12
>>>>>>>>>>>   Expiration Time = 1e+300
>>>>>>>>>>>
>>>>>>>>>>>   [0, 0, 0]
>>>>>>>>>>>   [ 0, 0, 0, 1 ]
>>>>>>>>>>>   2.22507e-308
>>>>>>>>>>>
>>>>>>>>>>>   ValidityPeriod: 0
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>   TrackerPort (0x211e9b0)
>>>>>>>>>>>   RTTI typeinfo:   igstk::TrackerPort
>>>>>>>>>>>   Reference Count: 1
>>>>>>>>>>>   Modified Time: 59
>>>>>>>>>>>   Debug: Off
>>>>>>>>>>>   Observers:
>>>>>>>>>>>     none
>>>>>>>>>>>   Number of tools: 1
>>>>>>>>>>>   PolarisTrackerTool (0x211e090)
>>>>>>>>>>>   RTTI typeinfo:   igstk::PolarisTrackerTool
>>>>>>>>>>>   Reference Count: 1
>>>>>>>>>>>   Modified Time: 55
>>>>>>>>>>>   Debug: Off
>>>>>>>>>>>   Observers:
>>>>>>>>>>>     none
>>>>>>>>>>>   Transform: Transform (0x211e1e8)
>>>>>>>>>>>   RTTI typeinfo:   N5igstk9TransformE
>>>>>>>>>>>   TimeStamp (0x211e1f0)
>>>>>>>>>>>   RTTI typeinfo:    N5igstk9TimeStampE
>>>>>>>>>>>   Start Time      = 1.17553e+12
>>>>>>>>>>>   Expiration Time = 1.17553e+12
>>>>>>>>>>>
>>>>>>>>>>>   [0, 0, 0]
>>>>>>>>>>>   [ 0, 0, 0, 1 ]
>>>>>>>>>>>   2.22507e-308
>>>>>>>>>>>
>>>>>>>>>>>   RawTransform: Transform (0x211e258)
>>>>>>>>>>>   RTTI typeinfo:   N5igstk9TransformE
>>>>>>>>>>>   TimeStamp (0x211e260)
>>>>>>>>>>>   RTTI typeinfo:    N5igstk9TimeStampE
>>>>>>>>>>>   Start Time      = 1.17553e+12
>>>>>>>>>>>   Expiration Time = 1.17553e+12
>>>>>>>>>>>
>>>>>>>>>>>   [0, 0, 0]
>>>>>>>>>>>   [ 0, 0, 0, 1 ]
>>>>>>>>>>>   2.22507e-308
>>>>>>>>>>>
>>>>>>>>>>>   ToolCalibrationTransform: Transform (0x211e2b8)
>>>>>>>>>>>   RTTI typeinfo:   N5igstk9TransformE
>>>>>>>>>>>   TimeStamp (0x211e2c0)
>>>>>>>>>>>   RTTI typeinfo:    N5igstk9TimeStampE
>>>>>>>>>>>   Start Time      = 1.17553e+12
>>>>>>>>>>>   Expiration Time = 1e+300
>>>>>>>>>>>
>>>>>>>>>>>   [0, 0, 0]
>>>>>>>>>>>   [ 0, 0, 0, 1 ]
>>>>>>>>>>>   2.22507e-308
>>>>>>>>>>>
>>>>>>>>>>>   ValidityPeriod: 0
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>   TrackerPort (0x211fd30)
>>>>>>>>>>>   RTTI typeinfo:   igstk::TrackerPort
>>>>>>>>>>>   Reference Count: 1
>>>>>>>>>>>   Modified Time: 67
>>>>>>>>>>>   Debug: Off
>>>>>>>>>>>   Observers:
>>>>>>>>>>>     none
>>>>>>>>>>>   Number of tools: 1
>>>>>>>>>>>   PolarisTrackerTool (0x211f410)
>>>>>>>>>>>   RTTI typeinfo:   igstk::PolarisTrackerTool
>>>>>>>>>>>   Reference Count: 1
>>>>>>>>>>>   Modified Time: 63
>>>>>>>>>>>   Debug: Off
>>>>>>>>>>>   Observers:
>>>>>>>>>>>     none
>>>>>>>>>>>   Transform: Transform (0x211f568)
>>>>>>>>>>>   RTTI typeinfo:   N5igstk9TransformE
>>>>>>>>>>>   TimeStamp (0x211f570)
>>>>>>>>>>>   RTTI typeinfo:    N5igstk9TimeStampE
>>>>>>>>>>>   Start Time      = 1.17553e+12
>>>>>>>>>>>   Expiration Time = 1.17553e+12
>>>>>>>>>>>
>>>>>>>>>>>   [0, 0, 0]
>>>>>>>>>>>   [ 0, 0, 0, 1 ]
>>>>>>>>>>>   2.22507e-308
>>>>>>>>>>>
>>>>>>>>>>>   RawTransform: Transform (0x211f5d8)
>>>>>>>>>>>   RTTI typeinfo:   N5igstk9TransformE
>>>>>>>>>>>   TimeStamp (0x211f5e0)
>>>>>>>>>>>   RTTI typeinfo:    N5igstk9TimeStampE
>>>>>>>>>>>   Start Time      = 1.17553e+12
>>>>>>>>>>>   Expiration Time = 1.17553e+12
>>>>>>>>>>>
>>>>>>>>>>>   [0, 0, 0]
>>>>>>>>>>>   [ 0, 0, 0, 1 ]
>>>>>>>>>>>   2.22507e-308
>>>>>>>>>>>
>>>>>>>>>>>   ToolCalibrationTransform: Transform (0x211f638)
>>>>>>>>>>>   RTTI typeinfo:   N5igstk9TransformE
>>>>>>>>>>>   TimeStamp (0x211f640)
>>>>>>>>>>>   RTTI typeinfo:    N5igstk9TimeStampE
>>>>>>>>>>>   Start Time      = 1.17553e+12
>>>>>>>>>>>   Expiration Time = 1e+300
>>>>>>>>>>>
>>>>>>>>>>>   [0, 0, 0]
>>>>>>>>>>>   [ 0, 0, 0, 1 ]
>>>>>>>>>>>   2.22507e-308
>>>>>>>>>>>
>>>>>>>>>>>   ValidityPeriod: 0
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>   TrackerPort (0x21210e0)
>>>>>>>>>>>   RTTI typeinfo:   igstk::TrackerPort
>>>>>>>>>>>   Reference Count: 1
>>>>>>>>>>>   Modified Time: 75
>>>>>>>>>>>   Debug: Off
>>>>>>>>>>>   Observers:
>>>>>>>>>>>     none
>>>>>>>>>>>   Number of tools: 1
>>>>>>>>>>>   PolarisTrackerTool (0x2120790)
>>>>>>>>>>>   RTTI typeinfo:   igstk::PolarisTrackerTool
>>>>>>>>>>>   Reference Count: 1
>>>>>>>>>>>   Modified Time: 71
>>>>>>>>>>>   Debug: Off
>>>>>>>>>>>   Observers:
>>>>>>>>>>>     none
>>>>>>>>>>>   Transform: Transform (0x21208e8)
>>>>>>>>>>>   RTTI typeinfo:   N5igstk9TransformE
>>>>>>>>>>>   TimeStamp (0x21208f0)
>>>>>>>>>>>   RTTI typeinfo:    N5igstk9TimeStampE
>>>>>>>>>>>   Start Time      = 1.17553e+12
>>>>>>>>>>>   Expiration Time = 1.17553e+12
>>>>>>>>>>>
>>>>>>>>>>>   [0, 0, 0]
>>>>>>>>>>>   [ 0, 0, 0, 1 ]
>>>>>>>>>>>   2.22507e-308
>>>>>>>>>>>
>>>>>>>>>>>   RawTransform: Transform (0x2120958)
>>>>>>>>>>>   RTTI typeinfo:   N5igstk9TransformE
>>>>>>>>>>>   TimeStamp (0x2120960)
>>>>>>>>>>>   RTTI typeinfo:    N5igstk9TimeStampE
>>>>>>>>>>>   Start Time      = 1.17553e+12
>>>>>>>>>>>   Expiration Time = 1.17553e+12
>>>>>>>>>>>
>>>>>>>>>>>   [0, 0, 0]
>>>>>>>>>>>   [ 0, 0, 0, 1 ]
>>>>>>>>>>>   2.22507e-308
>>>>>>>>>>>
>>>>>>>>>>>   ToolCalibrationTransform: Transform (0x21209b8)
>>>>>>>>>>>   RTTI typeinfo:   N5igstk9TransformE
>>>>>>>>>>>   TimeStamp (0x21209c0)
>>>>>>>>>>>   RTTI typeinfo:    N5igstk9TimeStampE
>>>>>>>>>>>   Start Time      = 1.17553e+12
>>>>>>>>>>>   Expiration Time = 1e+300
>>>>>>>>>>>
>>>>>>>>>>>   [0, 0, 0]
>>>>>>>>>>>   [ 0, 0, 0, 1 ]
>>>>>>>>>>>   2.22507e-308
>>>>>>>>>>>
>>>>>>>>>>>   ValidityPeriod: 0
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>   TrackerPort (0x2133530)
>>>>>>>>>>>   RTTI typeinfo:   igstk::TrackerPort
>>>>>>>>>>>   Reference Count: 1
>>>>>>>>>>>   Modified Time: 83
>>>>>>>>>>>   Debug: Off
>>>>>>>>>>>   Observers:
>>>>>>>>>>>     none
>>>>>>>>>>>   Number of tools: 1
>>>>>>>>>>>   PolarisTrackerTool (0x2132df0)
>>>>>>>>>>>   RTTI typeinfo:   igstk::PolarisTrackerTool
>>>>>>>>>>>   Reference Count: 1
>>>>>>>>>>>   Modified Time: 79
>>>>>>>>>>>   Debug: Off
>>>>>>>>>>>   Observers:
>>>>>>>>>>>     none
>>>>>>>>>>>   Transform: Transform (0x2132f48)
>>>>>>>>>>>   RTTI typeinfo:   N5igstk9TransformE
>>>>>>>>>>>   TimeStamp (0x2132f50)
>>>>>>>>>>>   RTTI typeinfo:    N5igstk9TimeStampE
>>>>>>>>>>>   Start Time      = 1.17553e+12
>>>>>>>>>>>   Expiration Time = 1.17553e+12
>>>>>>>>>>>
>>>>>>>>>>>   [0, 0, 0]
>>>>>>>>>>>   [ 0, 0, 0, 1 ]
>>>>>>>>>>>   2.22507e-308
>>>>>>>>>>>
>>>>>>>>>>>   RawTransform: Transform (0x2132fb8)
>>>>>>>>>>>   RTTI typeinfo:   N5igstk9TransformE
>>>>>>>>>>>   TimeStamp (0x2132fc0)
>>>>>>>>>>>   RTTI typeinfo:    N5igstk9TimeStampE
>>>>>>>>>>>   Start Time      = 1.17553e+12
>>>>>>>>>>>   Expiration Time = 1.17553e+12
>>>>>>>>>>>
>>>>>>>>>>>   [0, 0, 0]
>>>>>>>>>>>   [ 0, 0, 0, 1 ]
>>>>>>>>>>>   2.22507e-308
>>>>>>>>>>>
>>>>>>>>>>>   ToolCalibrationTransform: Transform (0x2133018)
>>>>>>>>>>>   RTTI typeinfo:   N5igstk9TransformE
>>>>>>>>>>>   TimeStamp (0x2133020)
>>>>>>>>>>>   RTTI typeinfo:    N5igstk9TimeStampE
>>>>>>>>>>>   Start Time      = 1.17553e+12
>>>>>>>>>>>   Expiration Time = 1e+300
>>>>>>>>>>>
>>>>>>>>>>>   [0, 0, 0]
>>>>>>>>>>>   [ 0, 0, 0, 1 ]
>>>>>>>>>>>   2.22507e-308
>>>>>>>>>>>
>>>>>>>>>>>   ValidityPeriod: 0
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>   TrackerPort (0x21348c0)
>>>>>>>>>>>   RTTI typeinfo:   igstk::TrackerPort
>>>>>>>>>>>   Reference Count: 1
>>>>>>>>>>>   Modified Time: 91
>>>>>>>>>>>   Debug: Off
>>>>>>>>>>>   Observers:
>>>>>>>>>>>     none
>>>>>>>>>>>   Number of tools: 1
>>>>>>>>>>>   PolarisTrackerTool (0x2133f50)
>>>>>>>>>>>   RTTI typeinfo:   igstk::PolarisTrackerTool
>>>>>>>>>>>   Reference Count: 1
>>>>>>>>>>>   Modified Time: 87
>>>>>>>>>>>   Debug: Off
>>>>>>>>>>>   Observers:
>>>>>>>>>>>     none
>>>>>>>>>>>   Transform: Transform (0x21340a8)
>>>>>>>>>>>   RTTI typeinfo:   N5igstk9TransformE
>>>>>>>>>>>   TimeStamp (0x21340b0)
>>>>>>>>>>>   RTTI typeinfo:    N5igstk9TimeStampE
>>>>>>>>>>>   Start Time      = 1.17553e+12
>>>>>>>>>>>   Expiration Time = 1.17553e+12
>>>>>>>>>>>
>>>>>>>>>>>   [0, 0, 0]
>>>>>>>>>>>   [ 0, 0, 0, 1 ]
>>>>>>>>>>>   2.22507e-308
>>>>>>>>>>>
>>>>>>>>>>>   RawTransform: Transform (0x2134118)
>>>>>>>>>>>   RTTI typeinfo:   N5igstk9TransformE
>>>>>>>>>>>   TimeStamp (0x2134120)
>>>>>>>>>>>   RTTI typeinfo:    N5igstk9TimeStampE
>>>>>>>>>>>   Start Time      = 1.17553e+12
>>>>>>>>>>>   Expiration Time = 1.17553e+12
>>>>>>>>>>>
>>>>>>>>>>>   [0, 0, 0]
>>>>>>>>>>>   [ 0, 0, 0, 1 ]
>>>>>>>>>>>   2.22507e-308
>>>>>>>>>>>
>>>>>>>>>>>   ToolCalibrationTransform: Transform (0x2134178)
>>>>>>>>>>>   RTTI typeinfo:   N5igstk9TransformE
>>>>>>>>>>>   TimeStamp (0x2134180)
>>>>>>>>>>>   RTTI typeinfo:    N5igstk9TimeStampE
>>>>>>>>>>>   Start Time      = 1.17553e+12
>>>>>>>>>>>   Expiration Time = 1e+300
>>>>>>>>>>>
>>>>>>>>>>>   [0, 0, 0]
>>>>>>>>>>>   [ 0, 0, 0, 1 ]
>>>>>>>>>>>   2.22507e-308
>>>>>>>>>>>
>>>>>>>>>>>   ValidityPeriod: 0
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>   TrackerPort (0x2135c80)
>>>>>>>>>>>   RTTI typeinfo:   igstk::TrackerPort
>>>>>>>>>>>   Reference Count: 1
>>>>>>>>>>>   Modified Time: 99
>>>>>>>>>>>   Debug: Off
>>>>>>>>>>>   Observers:
>>>>>>>>>>>     none
>>>>>>>>>>>   Number of tools: 1
>>>>>>>>>>>   PolarisTrackerTool (0x21352e0)
>>>>>>>>>>>   RTTI typeinfo:   igstk::PolarisTrackerTool
>>>>>>>>>>>   Reference Count: 1
>>>>>>>>>>>   Modified Time: 95
>>>>>>>>>>>   Debug: Off
>>>>>>>>>>>   Observers:
>>>>>>>>>>>     none
>>>>>>>>>>>   Transform: Transform (0x2135438)
>>>>>>>>>>>   RTTI typeinfo:   N5igstk9TransformE
>>>>>>>>>>>   TimeStamp (0x2135440)
>>>>>>>>>>>   RTTI typeinfo:    N5igstk9TimeStampE
>>>>>>>>>>>   Start Time      = 1.17553e+12
>>>>>>>>>>>   Expiration Time = 1.17553e+12
>>>>>>>>>>>
>>>>>>>>>>>   [0, 0, 0]
>>>>>>>>>>>   [ 0, 0, 0, 1 ]
>>>>>>>>>>>   2.22507e-308
>>>>>>>>>>>
>>>>>>>>>>>   RawTransform: Transform (0x21354a8)
>>>>>>>>>>>   RTTI typeinfo:   N5igstk9TransformE
>>>>>>>>>>>   TimeStamp (0x21354b0)
>>>>>>>>>>>   RTTI typeinfo:    N5igstk9TimeStampE
>>>>>>>>>>>   Start Time      = 1.17553e+12
>>>>>>>>>>>   Expiration Time = 1.17553e+12
>>>>>>>>>>>
>>>>>>>>>>>   [0, 0, 0]
>>>>>>>>>>>   [ 0, 0, 0, 1 ]
>>>>>>>>>>>   2.22507e-308
>>>>>>>>>>>
>>>>>>>>>>>   ToolCalibrationTransform: Transform (0x2135508)
>>>>>>>>>>>   RTTI typeinfo:   N5igstk9TransformE
>>>>>>>>>>>   TimeStamp (0x2135510)
>>>>>>>>>>>   RTTI typeinfo:    N5igstk9TimeStampE
>>>>>>>>>>>   Start Time      = 1.17553e+12
>>>>>>>>>>>   Expiration Time = 1e+300
>>>>>>>>>>>
>>>>>>>>>>>   [0, 0, 0]
>>>>>>>>>>>   [ 0, 0, 0, 1 ]
>>>>>>>>>>>   2.22507e-308
>>>>>>>>>>>
>>>>>>>>>>>   ValidityPeriod: 0
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>   TrackerPort (0x2136ff0)
>>>>>>>>>>>   RTTI typeinfo:   igstk::TrackerPort
>>>>>>>>>>>   Reference Count: 1
>>>>>>>>>>>   Modified Time: 107
>>>>>>>>>>>   Debug: Off
>>>>>>>>>>>   Observers:
>>>>>>>>>>>     none
>>>>>>>>>>>   Number of tools: 1
>>>>>>>>>>>   PolarisTrackerTool (0x21366a0)
>>>>>>>>>>>   RTTI typeinfo:   igstk::PolarisTrackerTool
>>>>>>>>>>>   Reference Count: 1
>>>>>>>>>>>   Modified Time: 103
>>>>>>>>>>>   Debug: Off
>>>>>>>>>>>   Observers:
>>>>>>>>>>>     none
>>>>>>>>>>>   Transform: Transform (0x21367f8)
>>>>>>>>>>>   RTTI typeinfo:   N5igstk9TransformE
>>>>>>>>>>>   TimeStamp (0x2136800)
>>>>>>>>>>>   RTTI typeinfo:    N5igstk9TimeStampE
>>>>>>>>>>>   Start Time      = 1.17553e+12
>>>>>>>>>>>   Expiration Time = 1.17553e+12
>>>>>>>>>>>
>>>>>>>>>>>   [0, 0, 0]
>>>>>>>>>>>   [ 0, 0, 0, 1 ]
>>>>>>>>>>>   2.22507e-308
>>>>>>>>>>>
>>>>>>>>>>>   RawTransform: Transform (0x2136868)
>>>>>>>>>>>   RTTI typeinfo:   N5igstk9TransformE
>>>>>>>>>>>   TimeStamp (0x2136870)
>>>>>>>>>>>   RTTI typeinfo:    N5igstk9TimeStampE
>>>>>>>>>>>   Start Time      = 1.17553e+12
>>>>>>>>>>>   Expiration Time = 1.17553e+12
>>>>>>>>>>>
>>>>>>>>>>>   [0, 0, 0]
>>>>>>>>>>>   [ 0, 0, 0, 1 ]
>>>>>>>>>>>   2.22507e-308
>>>>>>>>>>>
>>>>>>>>>>>   ToolCalibrationTransform: Transform (0x21368c8)
>>>>>>>>>>>   RTTI typeinfo:   N5igstk9TransformE
>>>>>>>>>>>   TimeStamp (0x21368d0)
>>>>>>>>>>>   RTTI typeinfo:    N5igstk9TimeStampE
>>>>>>>>>>>   Start Time      = 1.17553e+12
>>>>>>>>>>>   Expiration Time = 1e+300
>>>>>>>>>>>
>>>>>>>>>>>   [0, 0, 0]
>>>>>>>>>>>   [ 0, 0, 0, 1 ]
>>>>>>>>>>>   2.22507e-308
>>>>>>>>>>>
>>>>>>>>>>>   ValidityPeriod: 0
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>   TrackerPort (0x21383b0)
>>>>>>>>>>>   RTTI typeinfo:   igstk::TrackerPort
>>>>>>>>>>>   Reference Count: 1
>>>>>>>>>>>   Modified Time: 115
>>>>>>>>>>>   Debug: Off
>>>>>>>>>>>   Observers:
>>>>>>>>>>>     none
>>>>>>>>>>>   Number of tools: 1
>>>>>>>>>>>   PolarisTrackerTool (0x2137a10)
>>>>>>>>>>>   RTTI typeinfo:   igstk::PolarisTrackerTool
>>>>>>>>>>>   Reference Count: 1
>>>>>>>>>>>   Modified Time: 111
>>>>>>>>>>>   Debug: Off
>>>>>>>>>>>   Observers:
>>>>>>>>>>>     none
>>>>>>>>>>>   Transform: Transform (0x2137b68)
>>>>>>>>>>>   RTTI typeinfo:   N5igstk9TransformE
>>>>>>>>>>>   TimeStamp (0x2137b70)
>>>>>>>>>>>   RTTI typeinfo:    N5igstk9TimeStampE
>>>>>>>>>>>   Start Time      = 1.17553e+12
>>>>>>>>>>>   Expiration Time = 1.17553e+12
>>>>>>>>>>>
>>>>>>>>>>>   [0, 0, 0]
>>>>>>>>>>>   [ 0, 0, 0, 1 ]
>>>>>>>>>>>   2.22507e-308
>>>>>>>>>>>
>>>>>>>>>>>   RawTransform: Transform (0x2137bd8)
>>>>>>>>>>>   RTTI typeinfo:   N5igstk9TransformE
>>>>>>>>>>>   TimeStamp (0x2137be0)
>>>>>>>>>>>   RTTI typeinfo:    N5igstk9TimeStampE
>>>>>>>>>>>   Start Time      = 1.17553e+12
>>>>>>>>>>>   Expiration Time = 1.17553e+12
>>>>>>>>>>>
>>>>>>>>>>>   [0, 0, 0]
>>>>>>>>>>>   [ 0, 0, 0, 1 ]
>>>>>>>>>>>   2.22507e-308
>>>>>>>>>>>
>>>>>>>>>>>   ToolCalibrationTransform: Transform (0x2137c38)
>>>>>>>>>>>   RTTI typeinfo:   N5igstk9TransformE
>>>>>>>>>>>   TimeStamp (0x2137c40)
>>>>>>>>>>>   RTTI typeinfo:    N5igstk9TimeStampE
>>>>>>>>>>>   Start Time      = 1.17553e+12
>>>>>>>>>>>   Expiration Time = 1e+300
>>>>>>>>>>>
>>>>>>>>>>>   [0, 0, 0]
>>>>>>>>>>>   [ 0, 0, 0, 1 ]
>>>>>>>>>>>   2.22507e-308
>>>>>>>>>>>
>>>>>>>>>>>   ValidityPeriod: 0
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>   TrackerPort (0x2139780)
>>>>>>>>>>>   RTTI typeinfo:   igstk::TrackerPort
>>>>>>>>>>>   Reference Count: 1
>>>>>>>>>>>   Modified Time: 123
>>>>>>>>>>>   Debug: Off
>>>>>>>>>>>   Observers:
>>>>>>>>>>>     none
>>>>>>>>>>>   Number of tools: 1
>>>>>>>>>>>   PolarisTrackerTool (0x2138dd0)
>>>>>>>>>>>   RTTI typeinfo:   igstk::PolarisTrackerTool
>>>>>>>>>>>   Reference Count: 1
>>>>>>>>>>>   Modified Time: 119
>>>>>>>>>>>   Debug: Off
>>>>>>>>>>>   Observers:
>>>>>>>>>>>     none
>>>>>>>>>>>   Transform: Transform (0x2138f28)
>>>>>>>>>>>   RTTI typeinfo:   N5igstk9TransformE
>>>>>>>>>>>   TimeStamp (0x2138f30)
>>>>>>>>>>>   RTTI typeinfo:    N5igstk9TimeStampE
>>>>>>>>>>>   Start Time      = 1.17553e+12
>>>>>>>>>>>   Expiration Time = 1.17553e+12
>>>>>>>>>>>
>>>>>>>>>>>   [0, 0, 0]
>>>>>>>>>>>   [ 0, 0, 0, 1 ]
>>>>>>>>>>>   2.22507e-308
>>>>>>>>>>>
>>>>>>>>>>>   RawTransform: Transform (0x2138f98)
>>>>>>>>>>>   RTTI typeinfo:   N5igstk9TransformE
>>>>>>>>>>>   TimeStamp (0x2138fa0)
>>>>>>>>>>>   RTTI typeinfo:    N5igstk9TimeStampE
>>>>>>>>>>>   Start Time      = 1.17553e+12
>>>>>>>>>>>   Expiration Time = 1.17553e+12
>>>>>>>>>>>
>>>>>>>>>>>   [0, 0, 0]
>>>>>>>>>>>   [ 0, 0, 0, 1 ]
>>>>>>>>>>>   2.22507e-308
>>>>>>>>>>>
>>>>>>>>>>>   ToolCalibrationTransform: Transform (0x2138ff8)
>>>>>>>>>>>   RTTI typeinfo:   N5igstk9TransformE
>>>>>>>>>>>   TimeStamp (0x2139000)
>>>>>>>>>>>   RTTI typeinfo:    N5igstk9TimeStampE
>>>>>>>>>>>   Start Time      = 1.17553e+12
>>>>>>>>>>>   Expiration Time = 1e+300
>>>>>>>>>>>
>>>>>>>>>>>   [0, 0, 0]
>>>>>>>>>>>   [ 0, 0, 0, 1 ]
>>>>>>>>>>>   2.22507e-308
>>>>>>>>>>>
>>>>>>>>>>>   ValidityPeriod: 0
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>   TrackerPort (0x213ab40)
>>>>>>>>>>>   RTTI typeinfo:   igstk::TrackerPort
>>>>>>>>>>>   Reference Count: 1
>>>>>>>>>>>   Modified Time: 131
>>>>>>>>>>>   Debug: Off
>>>>>>>>>>>   Observers:
>>>>>>>>>>>     none
>>>>>>>>>>>   Number of tools: 1
>>>>>>>>>>>   PolarisTrackerTool (0x213a1a0)
>>>>>>>>>>>   RTTI typeinfo:   igstk::PolarisTrackerTool
>>>>>>>>>>>   Reference Count: 1
>>>>>>>>>>>   Modified Time: 127
>>>>>>>>>>>   Debug: Off
>>>>>>>>>>>   Observers:
>>>>>>>>>>>     none
>>>>>>>>>>>   Transform: Transform (0x213a2f8)
>>>>>>>>>>>   RTTI typeinfo:   N5igstk9TransformE
>>>>>>>>>>>   TimeStamp (0x213a300)
>>>>>>>>>>>   RTTI typeinfo:    N5igstk9TimeStampE
>>>>>>>>>>>   Start Time      = 1.17553e+12
>>>>>>>>>>>   Expiration Time = 1.17553e+12
>>>>>>>>>>>
>>>>>>>>>>>   [0, 0, 0]
>>>>>>>>>>>   [ 0, 0, 0, 1 ]
>>>>>>>>>>>   2.22507e-308
>>>>>>>>>>>
>>>>>>>>>>>   RawTransform: Transform (0x213a368)
>>>>>>>>>>>   RTTI typeinfo:   N5igstk9TransformE
>>>>>>>>>>>   TimeStamp (0x213a370)
>>>>>>>>>>>   RTTI typeinfo:    N5igstk9TimeStampE
>>>>>>>>>>>   Start Time      = 1.17553e+12
>>>>>>>>>>>   Expiration Time = 1.17553e+12
>>>>>>>>>>>
>>>>>>>>>>>   [0, 0, 0]
>>>>>>>>>>>   [ 0, 0, 0, 1 ]
>>>>>>>>>>>   2.22507e-308
>>>>>>>>>>>
>>>>>>>>>>>   ToolCalibrationTransform: Transform (0x213a3c8)
>>>>>>>>>>>   RTTI typeinfo:   N5igstk9TransformE
>>>>>>>>>>>   TimeStamp (0x213a3d0)
>>>>>>>>>>>   RTTI typeinfo:    N5igstk9TimeStampE
>>>>>>>>>>>   Start Time      = 1.17553e+12
>>>>>>>>>>>   Expiration Time = 1e+300
>>>>>>>>>>>
>>>>>>>>>>>   [0, 0, 0]
>>>>>>>>>>>   [ 0, 0, 0, 1 ]
>>>>>>>>>>>   2.22507e-308
>>>>>>>>>>>
>>>>>>>>>>>   ValidityPeriod: 0
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>   TrackerPort (0x213beb0)
>>>>>>>>>>>   RTTI typeinfo:   igstk::TrackerPort
>>>>>>>>>>>   Reference Count: 1
>>>>>>>>>>>   Modified Time: 139
>>>>>>>>>>>   Debug: Off
>>>>>>>>>>>   Observers:
>>>>>>>>>>>     none
>>>>>>>>>>>   Number of tools: 1
>>>>>>>>>>>   PolarisTrackerTool (0x213b560)
>>>>>>>>>>>   RTTI typeinfo:   igstk::PolarisTrackerTool
>>>>>>>>>>>   Reference Count: 1
>>>>>>>>>>>   Modified Time: 135
>>>>>>>>>>>   Debug: Off
>>>>>>>>>>>   Observers:
>>>>>>>>>>>     none
>>>>>>>>>>>   Transform: Transform (0x213b6b8)
>>>>>>>>>>>   RTTI typeinfo:   N5igstk9TransformE
>>>>>>>>>>>   TimeStamp (0x213b6c0)
>>>>>>>>>>>   RTTI typeinfo:    N5igstk9TimeStampE
>>>>>>>>>>>   Start Time      = 1.17553e+12
>>>>>>>>>>>   Expiration Time = 1.17553e+12
>>>>>>>>>>>
>>>>>>>>>>>   [0, 0, 0]
>>>>>>>>>>>   [ 0, 0, 0, 1 ]
>>>>>>>>>>>   2.22507e-308
>>>>>>>>>>>
>>>>>>>>>>>   RawTransform: Transform (0x213b728)
>>>>>>>>>>>   RTTI typeinfo:   N5igstk9TransformE
>>>>>>>>>>>   TimeStamp (0x213b730)
>>>>>>>>>>>   RTTI typeinfo:    N5igstk9TimeStampE
>>>>>>>>>>>   Start Time      = 1.17553e+12
>>>>>>>>>>>   Expiration Time = 1.17553e+12
>>>>>>>>>>>
>>>>>>>>>>>   [0, 0, 0]
>>>>>>>>>>>   [ 0, 0, 0, 1 ]
>>>>>>>>>>>   2.22507e-308
>>>>>>>>>>>
>>>>>>>>>>>   ToolCalibrationTransform: Transform (0x213b788)
>>>>>>>>>>>   RTTI typeinfo:   N5igstk9TransformE
>>>>>>>>>>>   TimeStamp (0x213b790)
>>>>>>>>>>>   RTTI typeinfo:    N5igstk9TimeStampE
>>>>>>>>>>>   Start Time      = 1.17553e+12
>>>>>>>>>>>   Expiration Time = 1e+300
>>>>>>>>>>>
>>>>>>>>>>>   [0, 0, 0]
>>>>>>>>>>>   [ 0, 0, 0, 1 ]
>>>>>>>>>>>   2.22507e-308
>>>>>>>>>>>
>>>>>>>>>>>   ValidityPeriod: 0
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>   Port 0 Enabled: 0
>>>>>>>>>>>   Po
>>>>>>>>>
>>>>>>>>> ------------------------------------------------------------------------ 
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> void vtkIGTIGSTKStream::Test()
>>>>>>>>> {
>>>>>>>>>
>>>>>>>>>     igstk::RealTimeClock::Initialize();
>>>>>>>>>
>>>>>>>>> //    typedef itk::Logger                   LoggerType; //
>>>>>>>>> typedef itk::StdStreamLogOutput       LogOutputType;
>>>>>>>>>
>>>>>>>>>     igstk::PolarisTrackerTool::Pointer tool =
>>>>>>>>> igstk::PolarisTrackerTool::New();
>>>>>>>>>     std::cout << tool->GetNameOfClass() << std::endl;
>>>>>>>>>     std::cout << tool << std::endl;
>>>>>>>>>
>>>>>>>>>     igstk::SerialCommunicationForPosix::Pointer
>>>>>>>>>         serialComm = igstk::SerialCommunicationForPosix::New();
>>>>>>>>>
>>>>>>>>>     PolarisTrackerTestCommand::Pointer         my_command =
>>>>>>>>> PolarisTrackerTestCommand::New();
>>>>>>>>>
>>>>>>>>>     // logger object created     std::string testName =
>>>>>>>>> "HaiyingIGSTK";
>>>>>>>>> //    std::string outputDirectory = IGSTK_TEST_OUTPUT_DIR;
>>>>>>>>>     std::string outputDirectory = "/spl/tmp/Haiying";
>>>>>>>>> std::string filename = outputDirectory +"/";
>>>>>>>>>     filename = filename + testName;
>>>>>>>>>     filename = filename + "LoggerOutput.txt";
>>>>>>>>>     std::cout << "Logger output saved here:\n";
>>>>>>>>>     std::cout << filename << "\n";
>>>>>>>>>     std::ofstream loggerFile;
>>>>>>>>>     loggerFile.open( filename.c_str() );
>>>>>>>>>     LoggerType::Pointer   logger = LoggerType::New();
>>>>>>>>>     LogOutputType::Pointer logOutput = LogOutputType::New();
>>>>>>>>> logOutput->SetStream( loggerFile );
>>>>>>>>>     logger->AddLogOutput( logOutput );
>>>>>>>>>     logger->SetPriorityLevel( itk::Logger::DEBUG);
>>>>>>>>>
>>>>>>>>>     serialComm->AddObserver( itk::AnyEvent(), my_command);
>>>>>>>>>
>>>>>>>>>     serialComm->SetLogger( logger );
>>>>>>>>>
>>>>>>>>> //    serialComm->SetPortNumber( 
>>>>>>>>> IGSTK_TEST_POLARIS_PORT_NUMBER );
>>>>>>>>>         serialComm->SetPortNumber(
>>>>>>>>> igstk::SerialCommunication::PortNumber0 );
>>>>>>>>>     serialComm->SetParity( 
>>>>>>>>> igstk::SerialCommunication::NoParity );
>>>>>>>>>     serialComm->SetBaudRate(
>>>>>>>>> igstk::SerialCommunication::BaudRate115200 );
>>>>>>>>>     serialComm->SetDataBits( 
>>>>>>>>> igstk::SerialCommunication::DataBits8 );
>>>>>>>>>     serialComm->SetStopBits( 
>>>>>>>>> igstk::SerialCommunication::StopBits1 );
>>>>>>>>>     serialComm->SetHardwareHandshake(
>>>>>>>>> igstk::SerialCommunication::HandshakeOff );
>>>>>>>>>
>>>>>>>>>     serialComm->SetCaptureFileName(
>>>>>>>>> "RecordedStreamByPolarisTrackerTest.txt" );
>>>>>>>>>     serialComm->SetCapture( true );
>>>>>>>>>
>>>>>>>>>     serialComm->OpenCommunication();
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>     igstk::PolarisTracker::Pointer  tracker;
>>>>>>>>>
>>>>>>>>>     tracker = igstk::PolarisTracker::New();
>>>>>>>>>
>>>>>>>>>     tracker->AddObserver( itk::AnyEvent(), my_command);
>>>>>>>>>
>>>>>>>>>     tracker->SetLogger( logger );
>>>>>>>>>
>>>>>>>>>     std::cout << "SetCommunication()" << std::endl;
>>>>>>>>>     tracker->SetCommunication( serialComm );
>>>>>>>>>
>>>>>>>>>     std::cout << "RequestOpen()" << std::endl;
>>>>>>>>>     tracker->RequestOpen();
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>     std::cout << "RequestInitialize()" << std::endl;
>>>>>>>>>     tracker->RequestInitialize();
>>>>>>>>>
>>>>>>>>>     std::cout << tracker << std::endl;
>>>>>>>>>
>>>>>>>>>     std::cout << "GetNumberOfTools()" << std::endl;
>>>>>>>>>     unsigned int ntools = tracker->GetNumberOfTools();
>>>>>>>>>
>>>>>>>>>     std::cout << "NumberOfTools : " << ntools << std::endl;
>>>>>>>>>
>>>>>>>>>     std::cout << "RequestStartTracking()" << std::endl;
>>>>>>>>>     tracker->RequestStartTracking();
>>>>>>>>>
>>>>>>>>>     typedef igstk::Transform            TransformType;
>>>>>>>>>     typedef ::itk::Vector<double, 3>    VectorType;
>>>>>>>>>     typedef ::itk::Versor<double>       VersorType;
>>>>>>>>>
>>>>>>>>>     for(unsigned int i=0; i<10; i++)
>>>>>>>>>     {
>>>>>>>>>         tracker->RequestUpdateStatus();
>>>>>>>>>         for (unsigned int port = 0; port < 4; port++)
>>>>>>>>>         {
>>>>>>>>>             TransformType             transform;
>>>>>>>>>             VectorType                position;
>>>>>>>>>
>>>>>>>>>             tracker->GetToolTransform( port, 0, transform );
>>>>>>>>>             position = transform.GetTranslation();
>>>>>>>>>             std::cout << "Port " << port << "  Position = (" <<
>>>>>>>>> position[0]
>>>>>>>>>                 << "," << position[1] << "," << position[2]
>>>>>>>>>                 << ")" << std::endl;
>>>>>>>>>         }
>>>>>>>>>     }
>>>>>>>>>
>>>>>>>>>     std::cout << "RequestReset()" << std::endl;
>>>>>>>>>     tracker->RequestReset();
>>>>>>>>>
>>>>>>>>>     std::cout << "RequestInitialize()" << std::endl;
>>>>>>>>>     tracker->RequestInitialize();
>>>>>>>>>
>>>>>>>>>     std::cout << "RequestStartTracking()" << std::endl;
>>>>>>>>>     tracker->RequestStartTracking();
>>>>>>>>>
>>>>>>>>>     std::cout << "RequestStopTracking()" << std::endl;
>>>>>>>>>     tracker->RequestStopTracking();
>>>>>>>>>
>>>>>>>>>     std::cout << "RequestClose()" << std::endl;
>>>>>>>>>     tracker->RequestClose();
>>>>>>>>>
>>>>>>>>>     std::cout << "CloseCommunication()" << std::endl;
>>>>>>>>>     serialComm->CloseCommunication();
>>>>>>>>>
>>>>>>>>>     std::cout << "[PASSED]" << std::endl;
>>>>>>>>> }
>>>>>>>
>>>>>>> ------------------------------------------------------------------------ 
>>>>>>>
>>>>>>>
>>>>>>> void vtkIGTIGSTKStream::Test()
>>>>>>> {
>>>>>>>
>>>>>>>     igstk::RealTimeClock::Initialize();
>>>>>>>
>>>>>>> //    typedef itk::Logger                   LoggerType; //    
>>>>>>> typedef
>>>>>>> itk::StdStreamLogOutput       LogOutputType;
>>>>>>>
>>>>>>>     igstk::PolarisTrackerTool::Pointer tool =
>>>>>>> igstk::PolarisTrackerTool::New();
>>>>>>>     std::cout << tool->GetNameOfClass() << std::endl;
>>>>>>>     std::cout << tool << std::endl;
>>>>>>>
>>>>>>>     igstk::SerialCommunicationForPosix::Pointer
>>>>>>>         serialComm = igstk::SerialCommunicationForPosix::New();
>>>>>>>
>>>>>>>     PolarisTrackerTestCommand::Pointer         my_command =
>>>>>>> PolarisTrackerTestCommand::New();
>>>>>>>
>>>>>>>     // logger object created     std::string testName = 
>>>>>>> "HaiyingIGSTK";
>>>>>>> //    std::string outputDirectory = IGSTK_TEST_OUTPUT_DIR;
>>>>>>>     std::string outputDirectory = "/spl/tmp/Haiying";     
>>>>>>> std::string
>>>>>>> filename = outputDirectory +"/";
>>>>>>>     filename = filename + testName;
>>>>>>>     filename = filename + "LoggerOutput.txt";
>>>>>>>     std::cout << "Logger output saved here:\n";
>>>>>>>     std::cout << filename << "\n";
>>>>>>>     std::ofstream loggerFile;
>>>>>>>     loggerFile.open( filename.c_str() );
>>>>>>>     LoggerType::Pointer   logger = LoggerType::New();
>>>>>>>     LogOutputType::Pointer logOutput = LogOutputType::New();
>>>>>>> logOutput->SetStream( loggerFile );
>>>>>>>     logger->AddLogOutput( logOutput );
>>>>>>>     logger->SetPriorityLevel( itk::Logger::DEBUG);
>>>>>>>
>>>>>>>     serialComm->AddObserver( itk::AnyEvent(), my_command);
>>>>>>>
>>>>>>>     serialComm->SetLogger( logger );
>>>>>>>
>>>>>>> //    serialComm->SetPortNumber( IGSTK_TEST_POLARIS_PORT_NUMBER );
>>>>>>>         serialComm->SetPortNumber(
>>>>>>> igstk::SerialCommunication::PortNumber0 );
>>>>>>>     serialComm->SetParity( igstk::SerialCommunication::NoParity );
>>>>>>>     serialComm->SetBaudRate(
>>>>>>> igstk::SerialCommunication::BaudRate115200 );
>>>>>>>     serialComm->SetDataBits( 
>>>>>>> igstk::SerialCommunication::DataBits8 );
>>>>>>>     serialComm->SetStopBits( 
>>>>>>> igstk::SerialCommunication::StopBits1 );
>>>>>>>     serialComm->SetHardwareHandshake(
>>>>>>> igstk::SerialCommunication::HandshakeOff );
>>>>>>>
>>>>>>>     serialComm->SetCaptureFileName(
>>>>>>> "RecordedStreamByPolarisTrackerTest.txt" );
>>>>>>>     serialComm->SetCapture( true );
>>>>>>>
>>>>>>>     serialComm->OpenCommunication();
>>>>>>>
>>>>>>>
>>>>>>>     igstk::PolarisTracker::Pointer  tracker;
>>>>>>>
>>>>>>>     tracker = igstk::PolarisTracker::New();
>>>>>>>
>>>>>>>     tracker->AddObserver( itk::AnyEvent(), my_command);
>>>>>>>
>>>>>>>     tracker->SetLogger( logger );
>>>>>>>
>>>>>>>     std::cout << "SetCommunication()" << std::endl;
>>>>>>>     tracker->SetCommunication( serialComm );
>>>>>>>
>>>>>>>     std::cout << "RequestOpen()" << std::endl;
>>>>>>>     tracker->RequestOpen();
>>>>>>>
>>>>>>>
>>>>>>>     std::cout << "RequestInitialize()" << std::endl;
>>>>>>>     tracker->RequestInitialize();
>>>>>>>
>>>>>>>     std::cout << tracker << std::endl;
>>>>>>>
>>>>>>>     std::cout << "GetNumberOfTools()" << std::endl;
>>>>>>>     unsigned int ntools = tracker->GetNumberOfTools();
>>>>>>>
>>>>>>>     std::cout << "NumberOfTools : " << ntools << std::endl;
>>>>>>>
>>>>>>>     std::cout << "RequestStartTracking()" << std::endl;
>>>>>>>     tracker->RequestStartTracking();
>>>>>>>
>>>>>>>     typedef igstk::Transform            TransformType;
>>>>>>>     typedef ::itk::Vector<double, 3>    VectorType;
>>>>>>>     typedef ::itk::Versor<double>       VersorType;
>>>>>>>
>>>>>>>     for(unsigned int i=0; i<10; i++)
>>>>>>>     {
>>>>>>>         tracker->RequestUpdateStatus();
>>>>>>>         for (unsigned int port = 0; port < 4; port++)
>>>>>>>         {
>>>>>>>             TransformType             transform;
>>>>>>>             VectorType                position;
>>>>>>>
>>>>>>>             tracker->GetToolTransform( port, 0, transform );
>>>>>>>             position = transform.GetTranslation();
>>>>>>>             std::cout << "Port " << port << "  Position = (" <<
>>>>>>> position[0]
>>>>>>>                 << "," << position[1] << "," << position[2]
>>>>>>>                 << ")" << std::endl;
>>>>>>>         }
>>>>>>>     }
>>>>>>>
>>>>>>>     std::cout << "RequestReset()" << std::endl;
>>>>>>>     tracker->RequestReset();
>>>>>>>
>>>>>>>     std::cout << "RequestInitialize()" << std::endl;
>>>>>>>     tracker->RequestInitialize();
>>>>>>>
>>>>>>>     std::cout << "RequestStartTracking()" << std::endl;
>>>>>>>     tracker->RequestStartTracking();
>>>>>>>
>>>>>>>     std::cout << "RequestStopTracking()" << std::endl;
>>>>>>>     tracker->RequestStopTracking();
>>>>>>>
>>>>>>>     std::cout << "RequestClose()" << std::endl;
>>>>>>>     tracker->RequestClose();
>>>>>>>
>>>>>>>     std::cout << "CloseCommunication()" << std::endl;
>>>>>>>     serialComm->CloseCommunication();
>>>>>>>
>>>>>>>     std::cout << "[PASSED]" << std::endl;
>>>>>>> }
>>>>>>>
>>>>>>>
>>>>>>> ------------------------------------------------------------------------ 
>>>>>>>
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> IGSTK-Developers mailing list
>>>>>>> IGSTK-Developers at public.kitware.com
>>>>>>> http://public.kitware.com/cgi-bin/mailman/listinfo/igstk-developers
>>>>>>
>>>>>> _______________________________________________
>>>>>> IGSTK-Developers mailing list
>>>>>> IGSTK-Developers at public.kitware.com
>>>>>> http://public.kitware.com/cgi-bin/mailman/listinfo/igstk-developers
>>>>>>
>>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>> _______________________________________________
>>> IGSTK-Developers mailing list
>>> IGSTK-Developers at public.kitware.com
>>> http://public.kitware.com/cgi-bin/mailman/listinfo/igstk-developers
>>>
>> _______________________________________________
>> IGSTK-Developers mailing list
>> IGSTK-Developers at public.kitware.com
>> http://public.kitware.com/cgi-bin/mailman/listinfo/igstk-developers
>
>




More information about the IGSTK-Developers mailing list