[IGSTK-Developers] Re: Questions about IGSTK

Kevin Gary kgary at asu.edu
Thu Apr 5 14:07:49 EDT 2007


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


-- 
===
Kevin A. Gary, Ph.D.
Assistant Professor
Division of Computing Studies
Arizona State University at the Polytechnic Campus
(480)727-1373
http://dcst2.east.asu.edu/~kgary
kgary at asu.edu




More information about the IGSTK-Developers mailing list