[IGSTK-Developers] Re: Questions about IGSTK
Patrick Cheng
cheng at isis.georgetown.edu
Tue Apr 3 13:20:44 EDT 2007
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;
>> }
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: igstkCode.txt
URL: <http://public.kitware.com/pipermail/igstk-developers/attachments/20070403/7eb8cd85/attachment.txt>
More information about the IGSTK-Developers
mailing list