[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