1
/*=========================================================================
3
Program: Image Guided Surgery Software Toolkit
4
Module: $RCSfile: igstkAuroraTrackerToolObserverToOpenIGTLinkRelayTest.cxx,v $
6
Date: $Date: 2009-06-02 21:36:17 $
7
Version: $Revision: 1.1 $
9
Copyright (c) ISC Insight Software Consortium. All rights reserved.
10
See IGSTKCopyright.txt or http://www.igstk.org/copyright.htm for details.
12
This software is distributed WITHOUT ANY WARRANTY; without even
13
the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
14
PURPOSE. See the above copyright notices for more information.
16
=========================================================================*/
19
// Warning about: identifier was truncated to '255' characters
20
// in the debug information (MVC6.0 Debug)
21
#pragma warning( disable : 4786 )
27
#include "igstkRealTimeClock.h"
28
#include "igstkSystemInformation.h"
29
#include "igstkSerialCommunication.h"
30
#include "igstkAuroraTracker.h"
31
#include "igstkSimulatedTrackerTool.h"
32
#include "igstkTrackerToolObserverToOpenIGTLinkRelay.h"
35
int igstkAuroraTrackerToolObserverToOpenIGTLinkRelayTest( int argc, char * argv [] )
40
std::cerr << "Usage: " << std::endl;
41
std::cerr << argv[0] << " hostname portnumber numberOfTransformsToSend auroraPortNumber framesPerSecond" << std::endl;
45
igstk::RealTimeClock::Initialize();
47
typedef igstk::AuroraTracker TrackerType;
48
typedef igstk::AuroraTrackerTool TrackerToolType;
49
typedef igstk::TrackerToolObserverToOpenIGTLinkRelay ObserverType;
51
TrackerType::Pointer tracker = TrackerType::New();
52
TrackerToolType::Pointer trackerTool = TrackerToolType::New();
53
ObserverType::Pointer toolObserver = ObserverType::New();
55
igstk::SerialCommunication::Pointer
56
serialComm = igstk::SerialCommunication::New();
58
typedef igstk::SerialCommunication::PortNumberType PortNumberType;
59
unsigned int portNumberIntegerValue = atoi(argv[4]);
60
PortNumberType polarisPortNumber = PortNumberType(portNumberIntegerValue);
61
serialComm->SetPortNumber( polarisPortNumber );
62
serialComm->SetParity( igstk::SerialCommunication::NoParity );
63
serialComm->SetBaudRate( igstk::SerialCommunication::BaudRate115200 );
64
serialComm->SetDataBits( igstk::SerialCommunication::DataBits8 );
65
serialComm->SetStopBits( igstk::SerialCommunication::StopBits1 );
66
serialComm->SetHardwareHandshake( igstk::SerialCommunication::HandshakeOff );
68
serialComm->SetCaptureFileName( "RecordedStreamByAuroraTrackerTest.txt" );
69
serialComm->SetCapture( true );
71
serialComm->OpenCommunication();
73
tracker->SetCommunication( serialComm );
75
double frequency = atof( argv[5] );
76
tracker->RequestSetFrequency( frequency );
77
tracker->RequestOpen();
79
trackerTool->RequestSelect6DOFTrackerTool();
80
trackerTool->RequestSetPortNumber( portNumberIntegerValue );
81
trackerTool->RequestConfigure();
83
trackerTool->RequestAttachToTracker( tracker );
85
toolObserver->RequestSetTrackerTool( trackerTool );
86
toolObserver->RequestSetHostName( argv[1] );
87
toolObserver->RequestSetPort( atoi( argv[2] ) );
88
toolObserver->RequestSetFramesPerSecond( frequency );
89
toolObserver->RequestStart();
91
tracker->RequestStartTracking();
93
const unsigned int numberOfTransformsToSend = atoi( argv[3] );
95
for( unsigned int i = 0; i < numberOfTransformsToSend; i++ )
97
igstk::PulseGenerator::Sleep(10);
98
igstk::PulseGenerator::CheckTimeouts();
101
tracker->RequestStopTracking();
102
tracker->RequestReset();
103
tracker->RequestClose();