24 std::vector<ToolPtr>
toVector(std::map<QString, OpenIGTLinkToolPtr> map)
26 std::vector<ToolPtr> retval;
27 std::map<QString, OpenIGTLinkToolPtr>::iterator it = map.begin();
28 for(; it!= map.end(); ++it)
30 retval.push_back(it->second);
36 mNetworkHandler(networkHandler)
38 if(mNetworkHandler == NULL)
59 return "org.custusx.core.openigtlink3";
99 CX_LOG_DEBUG() <<
"OpenIGTLinkTrackingSystemService::configure(): Not using OpenIGTLink tracking.";
105 CX_LOG_DEBUG() <<
"OpenIGTLinkTrackingSystemService::configure(): Using OpenIGTLink3 tracking";
110 for(std::vector<ConfigurationFileParser::ToolStructure>::iterator it = toolList.begin(); it != toolList.end(); ++it)
115 QString devicename = internalTool->mUid;
117 if(mTools.count(devicename))
118 CX_LOG_WARNING() <<
"Tool configuration already contain tool: " << devicename <<
". Existing tool will be overwritten";
119 mTools[devicename] = newTool;
120 if(newTool->isReference())
121 mReference = newTool;
124 CX_LOG_WARNING() <<
"OpenIGTLinkTrackingSystemService::configure() Got no reference tool";
142 void OpenIGTLinkTrackingSystemService::serverIsConnected()
148 void OpenIGTLinkTrackingSystemService::serverIsDisconnected()
160 if(tool->applyReference())
164 if(mReference && !tool->isReference())
167 prMs = tsMpr.inv() * tsMs;
170 tool->toolTransformAndTimestampSlot(prMs, timestampMS);
173 tool->toolTransformAndTimestampSlot(transform, timestampMS);
183 CX_LOG_WARNING() <<
"No tool with openigtlinktransformid: " << devicename;
184 CX_LOG_WARNING() <<
"Add the id to an openigtlinktransformid tag in one of the used tool files to fix this";
191 void OpenIGTLinkTrackingSystemService::receiveCalibration(QString devicename,
Transform3D calibration)
193 CX_LOG_DEBUG() <<
"receiveCalibration for: " << devicename;
196 tool->setCalibration_sMt(calibration);
199 void OpenIGTLinkTrackingSystemService::receiveProbedefinition(QString devicename,
ProbeDefinitionPtr definition)
211 probe->setProbeDefinition(*(definition.get()));
221 std::map<QString, OpenIGTLinkToolPtr>::iterator it;
222 for (it = mTools.begin(); it != mTools.end(); ++it)
225 if (tool->doIdCorrespondToTool(devicename))
236 mNetworkHandler->clearTimestampSynchronization();
cxResource_EXPORT ProfilePtr profile()
DoubleBoundingBox3D transform(const Transform3D &m, const DoubleBoundingBox3D &bb)
virtual void receiveTransform(QString devicename, Transform3D transform, double timestampMS)
QString getTrackingSystemImplementation()
Transform3D Transform3D
Transform3D is a representation of an affine 3D transform.
QString mConfigurationFilePath
path to the configuration file
virtual void setConfigurationFile(QString configurationFile)
virtual void setState(const Tool::State val)
asynchronously request a state. Wait for signal stateChanged()
void setInternalState(const Tool::State val)
bool printTransformIdWarning(QString devicename)
double getSoundSpeedCompensationFactor() const
boost::shared_ptr< class NetworkHandler > NetworkHandlerPtr
virtual TrackerConfigurationPtr getConfiguration()
virtual void deconfigure()
deconfigures the software
void stateChanged()
Reset time synchronization. Used for resetting time synchronization of incoming timestamps in OpenIGT...
boost::shared_ptr< Probe > ProbePtr
boost::shared_ptr< class TrackerConfiguration > TrackerConfigurationPtr
void updateTrackingSystemImplementation(QString trackingSystemImplementation)
QString mLoggingFolder
path to where logging should be saved
void internalSetState(Tool::State val)
const char * TRACKING_SYSTEM_IMPLEMENTATION_IGTLINK
void transform(QString devicename, Transform3D transform, double timestamp)
std::vector< ToolPtr > toVector(std::map< QString, OpenIGTLinkToolPtr > map)
void probedefinition(QString devicename, ProbeDefinitionPtr definition)
Class for reading the files defining a CustusX tool.
virtual std::vector< ToolPtr > getTools()
Definition of characteristics for an Ultrasound Probe Sector.
OpenIGTLinkToolPtr getTool(QString devicename)
virtual bool isConfigured() const
virtual void resetTimeSynchronization()
boost::shared_ptr< OpenIGTLinkTool > OpenIGTLinkToolPtr
virtual void configure()
sets up the software
virtual ~OpenIGTLinkTrackingSystemService()
void internalSetState(Tool::State val)
boost::shared_ptr< class ProbeDefinition > ProbeDefinitionPtr
std::vector< ConfigurationFileParser::ToolStructure > getToolListWithMetaInformation()
QStringList mTransformIdWarningPrinted
virtual ToolPtr getReference()
reference tool used by entire tracking service - NOTE: system fails if several TrackingSystemServices...
OpenIGTLinkTrackingSystemService(NetworkHandlerPtr networkHandler)
Namespace for all CustusX production code.
boost::shared_ptr< class Tool > ToolPtr
virtual QString getUid() const