[IGSTK-Developers] Re: Questions about IGSTK

David Gobbi dgobbi at atamai.com
Thu Apr 5 11:42:26 EDT 2007


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
>




More information about the IGSTK-Developers mailing list