Heidelberg Minimally Invasive Navigation Device. More...
#include <QmitkNDIConfigurationWidget.h>
Public Slots | |
void | SetDeviceName (const char *dev) |
set the device name (e.g. "COM1", "/dev/ttyS0") that will be used to connect to the tracking device | |
Signals | |
void | ToolsAdded (QStringList tools) |
void | ToolsChanged () |
void | Connected () |
void | Disconnected () |
Public Member Functions | |
QmitkNDIConfigurationWidget (QWidget *parent) | |
virtual | ~QmitkNDIConfigurationWidget () |
std::string | GetDeviceName () const |
mitk::NDITrackingDevice * | GetTracker () const |
mitk::DataStorage * | GetDataStorage () const |
mitk::NodePredicateBase * | GetPredicate () const |
const QStringList & | GetToolTypes () const |
void | SetToolTypes (const QStringList &types) |
set types list for type editor combobox | |
void | SetDataStorage (mitk::DataStorage *ds) |
set datastorage for organ node editor | |
void | SetPredicate (mitk::NodePredicateBase::Pointer p) |
set predicate for organ node editor | |
void | SetTagPropertyName (const std::string &name) |
set name of the property that is used to tag selected nodes | |
void | SetTagProperty (mitk::BaseProperty::Pointer prop) |
set the property that is used to tag selected nodes | |
const QString | GetToolType (unsigned int index) const |
const QString | GetToolName (unsigned int index) const |
QMap< QString, unsigned int > | GetToolAndTypes () const |
QList< unsigned int > | GetToolsByToolType (QString toolType) const |
mitk::DataNode * | GetNode (unsigned int index) const |
Protected Types | |
typedef QMap< QString, mitk::TrackingDeviceType > | PortDeviceMap |
Protected Slots | |
void | OnConnect () |
void | OnDisconnect () |
void | OnDiscoverTools () |
void | OnDiscoverDevices () |
void | OnAddPassiveTool () |
void | UpdateTrackerFromToolTable (const QModelIndex &topLeft, const QModelIndex &) |
Protected Member Functions | |
void | ScanPortsForNDITrackingDevices (PortDeviceMap &portsAndDevices) |
scans the ports provided as key in the portsAndDevices and fills the respective value of portsAndDevices with the tracking device type at that port | |
mitk::TrackingDeviceType | ScanPort (QString port) |
QStringList | GetToolNamesList () |
returns a string list with the names of all tools of the current tracking device | |
void | CreateTracker () |
creates new NDITrackingDevice object | |
void | SetupTracker () |
sets the parameters from the gui to the tracking device object | |
QString | GetStatusText () |
construct a status text depending on the current state of the tracking device object | |
void | UpdateWidgets () |
void | UpdateToolTable () |
read all tools from the tracking device object and display them in the gui | |
virtual void | CreateQtPartControl (QWidget *parent) |
virtual void | CreateConnections () |
Creation of the connections of main and control widget. | |
void | HidePolarisOptionsGroupbox (bool on) |
show or hide polaris options in the UI | |
void | HideAuroraOptionsGroupbox (bool on) |
show or hide aurora options in the UI | |
Protected Attributes | |
Ui::QmitkNDIConfigurationWidget * | m_Controls |
gui widgets | |
mitk::NDITrackingDevice::Pointer | m_Tracker |
tracking device object | |
mitk::TrackingDeviceSource::Pointer | m_Source |
QmitkNDIToolDelegate * | m_Delegate |
Heidelberg Minimally Invasive Navigation Device.
Functionality for visualizing a tracking instrument in relation to a tracked patient.
Definition at line 43 of file QmitkNDIConfigurationWidget.h.
typedef QMap<QString, mitk::TrackingDeviceType> QmitkNDIConfigurationWidget::PortDeviceMap [protected] |
Definition at line 83 of file QmitkNDIConfigurationWidget.h.
QmitkNDIConfigurationWidget::QmitkNDIConfigurationWidget | ( | QWidget * | parent ) |
Definition at line 32 of file QmitkNDIConfigurationWidget.cpp.
References CreateQtPartControl().
Referenced by CreateQtPartControl().
: QWidget(parent), m_Controls(NULL), m_Tracker(NULL), m_Source(NULL), m_Delegate(NULL) { this->CreateQtPartControl(this); }
QmitkNDIConfigurationWidget::~QmitkNDIConfigurationWidget | ( | ) | [virtual] |
Definition at line 40 of file QmitkNDIConfigurationWidget.cpp.
References m_Controls, m_Source, and m_Tracker.
{ m_Controls = NULL; m_Tracker = NULL; m_Source = NULL; }
void QmitkNDIConfigurationWidget::Connected | ( | ) | [signal] |
Referenced by OnConnect().
void QmitkNDIConfigurationWidget::CreateConnections | ( | ) | [protected, virtual] |
Creation of the connections of main and control widget.
Definition at line 74 of file QmitkNDIConfigurationWidget.cpp.
References Ui_QmitkNDIConfigurationWidget::m_AddToolBtn, Ui_QmitkNDIConfigurationWidget::m_Connect, m_Controls, Ui_QmitkNDIConfigurationWidget::m_DiscoverToolsBtn, Ui_QmitkNDIConfigurationWidget::m_DisoverDevicesBtn, Ui_QmitkNDIConfigurationWidget::m_ToolTable, OnAddPassiveTool(), OnConnect(), OnDiscoverDevices(), OnDiscoverTools(), and UpdateTrackerFromToolTable().
Referenced by CreateQtPartControl().
{ connect(m_Controls->m_Connect, SIGNAL(clicked()), this, SLOT(OnConnect())); connect(m_Controls->m_DiscoverToolsBtn, SIGNAL(clicked()), this, SLOT(OnDiscoverTools())); connect(m_Controls->m_AddToolBtn, SIGNAL(clicked()), this, SLOT(OnAddPassiveTool())); connect(m_Controls->m_DisoverDevicesBtn, SIGNAL(clicked()), this, SLOT(OnDiscoverDevices())); connect(m_Controls->m_ToolTable->model(), SIGNAL(dataChanged(const QModelIndex &, const QModelIndex &)), this, SLOT(UpdateTrackerFromToolTable(const QModelIndex &, const QModelIndex &))); }
void QmitkNDIConfigurationWidget::CreateQtPartControl | ( | QWidget * | parent ) | [protected, virtual] |
Definition at line 48 of file QmitkNDIConfigurationWidget.cpp.
References CreateConnections(), HideAuroraOptionsGroupbox(), HidePolarisOptionsGroupbox(), Ui_QmitkNDIConfigurationWidget::m_ComPortSelector, m_Controls, m_Delegate, Ui_QmitkNDIConfigurationWidget::m_ToolTable, QmitkNDIConfigurationWidget(), QmitkNDIToolDelegate::SetDataStorage(), QmitkNDIToolDelegate::SetPredicate(), QmitkNDIToolDelegate::SetTypes(), and Ui_QmitkNDIConfigurationWidget::setupUi().
Referenced by QmitkNDIConfigurationWidget().
{ if (!m_Controls) { // create GUI widgets m_Controls = new Ui::QmitkNDIConfigurationWidget; m_Controls->setupUi(parent); QStringList comPorts; #ifdef WIN32 comPorts << "COM1" << "COM2" << "COM3" << "COM4" << "COM5" << "COM6" << "COM7" << "COM8" << "COM9"; #else comPorts << "/dev/ttyS1" << "/dev/ttyS2" << "/dev/ttyS3" << "/dev/ttyS4" << "/dev/ttyS5" << "/dev/ttyUSB0" << "/dev/ttyUSB1" << "/dev/ttyUSB2" << "/dev/ttyUSB3"; #endif m_Controls->m_ComPortSelector->addItems(comPorts); m_Delegate = new QmitkNDIToolDelegate(m_Controls->m_ToolTable); m_Delegate->SetDataStorage(NULL); //needs to be set later using the setter methods m_Delegate->SetPredicate(NULL); m_Delegate->SetTypes(QStringList()); m_Controls->m_ToolTable->setItemDelegate(m_Delegate); this->CreateConnections(); this->HidePolarisOptionsGroupbox(true); this->HideAuroraOptionsGroupbox(true); } }
void QmitkNDIConfigurationWidget::CreateTracker | ( | ) | [protected] |
creates new NDITrackingDevice object
Definition at line 240 of file QmitkNDIConfigurationWidget.cpp.
References m_Tracker, and mitk::NDITrackingDevice::New().
Referenced by OnAddPassiveTool(), and OnConnect().
{ m_Tracker = mitk::NDITrackingDevice::New(); }
void QmitkNDIConfigurationWidget::Disconnected | ( | ) | [signal] |
Referenced by OnDisconnect().
mitk::DataStorage* QmitkNDIConfigurationWidget::GetDataStorage | ( | ) | const |
std::string QmitkNDIConfigurationWidget::GetDeviceName | ( | ) | const |
Definition at line 255 of file QmitkNDIConfigurationWidget.cpp.
References Ui_QmitkNDIConfigurationWidget::m_ComPortSelector, and m_Controls.
Referenced by SetupTracker().
{ if (m_Controls == NULL) return NULL; return m_Controls->m_ComPortSelector->currentText().toStdString(); }
mitk::DataNode * QmitkNDIConfigurationWidget::GetNode | ( | unsigned int | index ) | const |
Definition at line 532 of file QmitkNDIConfigurationWidget.cpp.
References m_Controls, Ui_QmitkNDIConfigurationWidget::m_ToolTable, QmitkNDIToolDelegate::NodeCol, and QmitkNDIToolDelegate::OrganNodeRole.
{ if (m_Controls == NULL) return NULL; QAbstractItemModel* model = m_Controls->m_ToolTable->model(); QVariant data = model->data(model->index(index, QmitkNDIToolDelegate::NodeCol), QmitkNDIToolDelegate::OrganNodeRole); return data.value<mitk::DataNode*>(); }
mitk::NodePredicateBase* QmitkNDIConfigurationWidget::GetPredicate | ( | ) | const |
QString QmitkNDIConfigurationWidget::GetStatusText | ( | ) | [protected] |
construct a status text depending on the current state of the tracking device object
Definition at line 177 of file QmitkNDIConfigurationWidget.cpp.
References m_Tracker, mitk::NDIAurora, mitk::NDIPolaris, mitk::TrackingDevice::Ready, mitk::TrackingDevice::Tracking, and mitk::TrackingSystemNotSpecified.
Referenced by UpdateWidgets().
{ if (m_Tracker.IsNull()) return QString("Not connected"); QString devName; switch (m_Tracker->GetType()) { case mitk::NDIAurora: devName = "NDI Aurora"; break; case mitk::NDIPolaris: devName = "NDI Polaris"; break; case mitk::TrackingSystemNotSpecified: default: devName = "unknown tracking device"; break; } if (m_Tracker->GetState() == mitk::TrackingDevice::Ready) return QString("Connected to %1 on %2. Device is ready.").arg(devName).arg(m_Tracker->GetDeviceName()); if (m_Tracker->GetState() == mitk::TrackingDevice::Tracking) return QString("%1 is tracking.").arg(devName); return QString(""); }
QMap< QString, unsigned int > QmitkNDIConfigurationWidget::GetToolAndTypes | ( | ) | const |
Definition at line 495 of file QmitkNDIConfigurationWidget.cpp.
References QmitkNDIToolDelegate::IndexCol, m_Controls, Ui_QmitkNDIConfigurationWidget::m_ToolTable, and QmitkNDIToolDelegate::TypeCol.
{ QMap<QString, unsigned int> map; if (m_Controls == NULL) return map; QAbstractItemModel* model = m_Controls->m_ToolTable->model(); for (int i = 0; i < model->rowCount(); ++i) { QModelIndex indexIndex = model->index(i, QmitkNDIToolDelegate::IndexCol); QModelIndex typeIndex = model->index(i, QmitkNDIToolDelegate::TypeCol); if ((indexIndex.isValid() == false) || (typeIndex.isValid() == false)) continue; map.insert(model->data(typeIndex).toString(), model->data(indexIndex).toUInt()); } return map; }
const QString QmitkNDIConfigurationWidget::GetToolName | ( | unsigned int | index ) | const |
Definition at line 481 of file QmitkNDIConfigurationWidget.cpp.
References m_Controls, Ui_QmitkNDIConfigurationWidget::m_ToolTable, and QmitkNDIToolDelegate::NameCol.
{ if (m_Controls == NULL) return QString(""); QAbstractItemModel* model = m_Controls->m_ToolTable->model(); QModelIndex modelIndex = model->index(index, QmitkNDIToolDelegate::NameCol); if (modelIndex.isValid() == false) return QString(""); return model->data(modelIndex).toString(); }
QStringList QmitkNDIConfigurationWidget::GetToolNamesList | ( | ) | [protected] |
returns a string list with the names of all tools of the current tracking device
Definition at line 370 of file QmitkNDIConfigurationWidget.cpp.
References mitk::TrackingTool::GetToolName(), m_Tracker, and QuadProgPP::t().
Referenced by OnAddPassiveTool(), OnConnect(), OnDisconnect(), and OnDiscoverTools().
{ QStringList toolNames; if (m_Tracker.IsNull()) return toolNames; for (unsigned int i = 0; i < m_Tracker->GetToolCount(); ++i) { mitk::TrackingTool* t = m_Tracker->GetTool(i); if (t == NULL) continue; toolNames << t->GetToolName(); } return toolNames; }
QList< unsigned int > QmitkNDIConfigurationWidget::GetToolsByToolType | ( | QString | toolType ) | const |
Definition at line 513 of file QmitkNDIConfigurationWidget.cpp.
References QmitkNDIToolDelegate::IndexCol, m_Controls, Ui_QmitkNDIConfigurationWidget::m_ToolTable, and QmitkNDIToolDelegate::TypeCol.
Referenced by QmitkIGTRecorderView::SetupIGTPipeline().
{ QList<unsigned int> list; if (m_Controls == NULL) return list; QAbstractItemModel* model = m_Controls->m_ToolTable->model(); for (int i = 0; i < model->rowCount(); ++i) { QModelIndex indexIndex = model->index(i, QmitkNDIToolDelegate::IndexCol); QModelIndex typeIndex = model->index(i, QmitkNDIToolDelegate::TypeCol); if ((indexIndex.isValid() == false) || (typeIndex.isValid() == false)) continue; if (model->data(typeIndex).toString() == toolType) list.append(model->data(indexIndex).toUInt()); } return list; }
const QString QmitkNDIConfigurationWidget::GetToolType | ( | unsigned int | index ) | const |
Definition at line 467 of file QmitkNDIConfigurationWidget.cpp.
References m_Controls, Ui_QmitkNDIConfigurationWidget::m_ToolTable, and QmitkNDIToolDelegate::TypeCol.
{ if (m_Controls == NULL) return QString(""); QAbstractItemModel* model = m_Controls->m_ToolTable->model(); QModelIndex modelIndex = model->index(index, QmitkNDIToolDelegate::TypeCol); if (modelIndex.isValid() == false) return QString(""); return model->data(modelIndex).toString(); }
const QStringList& QmitkNDIConfigurationWidget::GetToolTypes | ( | ) | const |
mitk::NDITrackingDevice * QmitkNDIConfigurationWidget::GetTracker | ( | ) | const |
Definition at line 386 of file QmitkNDIConfigurationWidget.cpp.
References m_Tracker.
Referenced by QmitkIGTRecorderView::OnStartRecording(), and QmitkToolPairNavigationView::SetupIGTPipeline().
{ return m_Tracker.GetPointer(); }
void QmitkNDIConfigurationWidget::HideAuroraOptionsGroupbox | ( | bool | on ) | [protected] |
show or hide aurora options in the UI
Definition at line 547 of file QmitkNDIConfigurationWidget.cpp.
References m_Controls, and Ui_QmitkNDIConfigurationWidget::m_gbAuroraOptions.
Referenced by CreateQtPartControl(), OnConnect(), and OnDisconnect().
{ m_Controls->m_gbAuroraOptions->setHidden(on); }
void QmitkNDIConfigurationWidget::HidePolarisOptionsGroupbox | ( | bool | on ) | [protected] |
show or hide polaris options in the UI
Definition at line 542 of file QmitkNDIConfigurationWidget.cpp.
References m_Controls, and Ui_QmitkNDIConfigurationWidget::m_gbPolarisOptions.
Referenced by CreateQtPartControl(), OnConnect(), and OnDisconnect().
{ m_Controls->m_gbPolarisOptions->setHidden(on); }
void QmitkNDIConfigurationWidget::OnAddPassiveTool | ( | ) | [protected, slot] |
Definition at line 217 of file QmitkNDIConfigurationWidget.cpp.
References CreateTracker(), GetToolNamesList(), m_Tracker, ToolsAdded(), and UpdateToolTable().
Referenced by CreateConnections().
{ if (m_Tracker.IsNull()) this->CreateTracker(); QStringList filenames = QFileDialog::getOpenFileNames(this, "Select NDI SROM file", QDir::currentPath(),"NDI SROM files (*.rom)"); if (filenames.isEmpty()) { this->m_Tracker = NULL; return; } foreach(QString fileName, filenames) { //QString toolName = QInputDialog::getText(this, "Enter a name for the tool", "Name of the tool: ", QLineEdit::Normal, QFileInfo(filename).baseName(), &ok); //if (ok == false || toolName.isEmpty()) // return; m_Tracker->AddTool(QFileInfo(fileName).baseName().toLatin1(), fileName.toLatin1()); } emit ToolsAdded(this->GetToolNamesList()); this->UpdateToolTable(); }
void QmitkNDIConfigurationWidget::OnConnect | ( | ) | [protected, slot] |
Definition at line 84 of file QmitkNDIConfigurationWidget.cpp.
References Connected(), CreateTracker(), GetToolNamesList(), HideAuroraOptionsGroupbox(), HidePolarisOptionsGroupbox(), m_Tracker, mitk::NDIAurora, mitk::NDIPolaris, SetupTracker(), ToolsAdded(), UpdateToolTable(), and UpdateWidgets().
Referenced by CreateConnections(), and UpdateWidgets().
{ if (m_Tracker.IsNotNull()) { m_Tracker->CloseConnection(); m_Tracker = NULL; } this->CreateTracker(); this->SetupTracker(); bool okay = m_Tracker->OpenConnection(); if (okay) { // show/hide options according to connected device if(m_Tracker->GetType() == mitk::NDIPolaris) { this->HideAuroraOptionsGroupbox(true); this->HidePolarisOptionsGroupbox(false); } else if(m_Tracker->GetType() == mitk::NDIAurora) { this->HidePolarisOptionsGroupbox(true); this->HideAuroraOptionsGroupbox(false); } this->UpdateWidgets(); this->UpdateToolTable(); emit ToolsAdded(this->GetToolNamesList()); emit Connected(); } else { QMessageBox::warning(NULL, "Error", QString("Connection failed. Tracking device error message is '%1'").arg(m_Tracker->GetErrorMessage())); m_Tracker->CloseConnection(); this->m_Tracker = NULL; } }
void QmitkNDIConfigurationWidget::OnDisconnect | ( | ) | [protected, slot] |
Definition at line 123 of file QmitkNDIConfigurationWidget.cpp.
References Disconnected(), GetToolNamesList(), HideAuroraOptionsGroupbox(), HidePolarisOptionsGroupbox(), m_Tracker, ToolsAdded(), UpdateToolTable(), and UpdateWidgets().
Referenced by UpdateWidgets().
{ if (m_Tracker.IsNull()) return; m_Tracker->CloseConnection(); m_Tracker = NULL; this->UpdateToolTable(); this->UpdateWidgets(); emit ToolsAdded(this->GetToolNamesList()); emit Disconnected(); this->HidePolarisOptionsGroupbox(true); this->HideAuroraOptionsGroupbox(true); }
void QmitkNDIConfigurationWidget::OnDiscoverDevices | ( | ) | [protected, slot] |
Definition at line 315 of file QmitkNDIConfigurationWidget.cpp.
References m_Controls, Ui_QmitkNDIConfigurationWidget::m_DeviceStatus, mitk::NDIAurora, mitk::NDIPolaris, and ScanPortsForNDITrackingDevices().
Referenced by CreateConnections().
{ PortDeviceMap portsAndDevices; QString status = "Scanning "; for (unsigned int i = 1; i < 10; ++i) { QString devName = QString("COM%1").arg(i); portsAndDevices[devName]; status += devName + ", "; } status.chop(2); // remove last ", " status += " for NDI tracking devices..."; m_Controls->m_DeviceStatus->setText(status); ScanPortsForNDITrackingDevices(portsAndDevices); QString result = "The following tracking devices were found:<BR/>\n"; for (PortDeviceMap::const_iterator it = portsAndDevices.begin(); it != portsAndDevices.end(); ++it) { result += it.key() + ": "; switch (it.value()) { case mitk::NDIPolaris: result += "NDI Polaris<BR/>\n"; break; case mitk::NDIAurora: result += "NDI Aurora<BR/>\n"; break; default: result += "No NDI tracking device found<BR/>\n"; } } //QMessageBox::information(NULL, "Tracking Device Discovery", result); m_Controls->m_DeviceStatus->setText(result); }
void QmitkNDIConfigurationWidget::OnDiscoverTools | ( | ) | [protected, slot] |
Definition at line 204 of file QmitkNDIConfigurationWidget.cpp.
References GetToolNamesList(), m_Tracker, ToolsAdded(), and UpdateToolTable().
Referenced by CreateConnections().
{ if (m_Tracker.IsNull()) { QMessageBox::warning(NULL, "Error", QString("Connection failed. No tracking device found.")); return; } m_Tracker->DiscoverWiredTools(); this->UpdateToolTable(); emit ToolsAdded(this->GetToolNamesList()); }
mitk::TrackingDeviceType QmitkNDIConfigurationWidget::ScanPort | ( | QString | port ) | [protected] |
Definition at line 350 of file QmitkNDIConfigurationWidget.cpp.
References mitk::NDITrackingDevice::New().
Referenced by ScanPortsForNDITrackingDevices().
{ mitk::NDITrackingDevice::Pointer tracker = mitk::NDITrackingDevice::New(); tracker->SetDeviceName(port.toStdString()); return tracker->TestConnection(); }
void QmitkNDIConfigurationWidget::ScanPortsForNDITrackingDevices | ( | PortDeviceMap & | portsAndDevices ) | [protected] |
scans the ports provided as key in the portsAndDevices and fills the respective value of portsAndDevices with the tracking device type at that port
Documentation
[in] | portsAndDevices | keys are used to query serial ports |
[out] | portsAndDevices | values of the existing keys will be filled with the tracking device type |
Definition at line 358 of file QmitkNDIConfigurationWidget.cpp.
References ScanPort().
Referenced by OnDiscoverDevices().
{ // Iterative scanning: for (PortDeviceMap::iterator it = portsAndDevices.begin(); it != portsAndDevices.end(); ++it) it.value() = this->ScanPort(it.key()); // \Todo: use parallel scanning //QtConcurrent::blockingMap( portsAndDevices.begin(), portsAndDevices.end(), ScanPort ); //MITK_INFO << portsAndDevices; }
void QmitkNDIConfigurationWidget::SetDataStorage | ( | mitk::DataStorage * | ds ) |
set datastorage for organ node editor
Definition at line 398 of file QmitkNDIConfigurationWidget.cpp.
References m_Delegate, and QmitkNDIToolDelegate::SetDataStorage().
Referenced by QmitkIGTRecorderView::CreateQtPartControl().
{ m_Delegate->SetDataStorage(ds); }
void QmitkNDIConfigurationWidget::SetDeviceName | ( | const char * | dev ) | [slot] |
set the device name (e.g. "COM1", "/dev/ttyS0") that will be used to connect to the tracking device
Definition at line 263 of file QmitkNDIConfigurationWidget.cpp.
References Ui_QmitkNDIConfigurationWidget::m_ComPortSelector, and m_Controls.
{ if (m_Controls == NULL) return; m_Controls->m_ComPortSelector->setCurrentIndex(m_Controls->m_ComPortSelector->findText(dev)); }
void QmitkNDIConfigurationWidget::SetPredicate | ( | mitk::NodePredicateBase::Pointer | p ) |
set predicate for organ node editor
Definition at line 404 of file QmitkNDIConfigurationWidget.cpp.
References m_Delegate, and QmitkNDIToolDelegate::SetPredicate().
Referenced by QmitkIGTRecorderView::CreateQtPartControl().
{ m_Delegate->SetPredicate(p); }
void QmitkNDIConfigurationWidget::SetTagProperty | ( | mitk::BaseProperty::Pointer | prop ) |
set the property that is used to tag selected nodes
Definition at line 416 of file QmitkNDIConfigurationWidget.cpp.
References m_Delegate, and QmitkNDIToolDelegate::SetTagProperty().
Referenced by QmitkIGTRecorderView::CreateQtPartControl().
{ m_Delegate->SetTagProperty(prop); }
void QmitkNDIConfigurationWidget::SetTagPropertyName | ( | const std::string & | name ) |
set name of the property that is used to tag selected nodes
Definition at line 410 of file QmitkNDIConfigurationWidget.cpp.
References m_Delegate, and QmitkNDIToolDelegate::SetTagPropertyName().
Referenced by QmitkIGTRecorderView::CreateQtPartControl().
{ m_Delegate->SetTagPropertyName(name); }
void QmitkNDIConfigurationWidget::SetToolTypes | ( | const QStringList & | types ) |
set types list for type editor combobox
Definition at line 392 of file QmitkNDIConfigurationWidget.cpp.
References m_Delegate, and QmitkNDIToolDelegate::SetTypes().
Referenced by QmitkIGTRecorderView::CreateQtPartControl().
{ m_Delegate->SetTypes(types); }
void QmitkNDIConfigurationWidget::SetupTracker | ( | ) | [protected] |
sets the parameters from the gui to the tracking device object
Definition at line 246 of file QmitkNDIConfigurationWidget.cpp.
References mitk::SerialCommunication::BaudRate115200, GetDeviceName(), and m_Tracker.
Referenced by OnConnect().
{ if (m_Tracker.IsNull()) return; m_Tracker->SetDeviceName(this->GetDeviceName()); m_Tracker->SetBaudRate(mitk::SerialCommunication::BaudRate115200); }
void QmitkNDIConfigurationWidget::ToolsAdded | ( | QStringList | tools ) | [signal] |
Referenced by OnAddPassiveTool(), OnConnect(), OnDisconnect(), and OnDiscoverTools().
void QmitkNDIConfigurationWidget::ToolsChanged | ( | ) | [signal] |
Referenced by UpdateTrackerFromToolTable().
void QmitkNDIConfigurationWidget::UpdateToolTable | ( | ) | [protected] |
read all tools from the tracking device object and display them in the gui
Definition at line 271 of file QmitkNDIConfigurationWidget.cpp.
References mitk::TrackingTool::GetToolName(), QmitkNDIToolDelegate::IndexCol, mitk::TrackingTool::IsEnabled(), m_Controls, Ui_QmitkNDIConfigurationWidget::m_ToolTable, m_Tracker, QmitkNDIToolDelegate::NameCol, QmitkNDIToolDelegate::NodeCol, QmitkNDIToolDelegate::SROMCol, QmitkNDIToolDelegate::StatusCol, QuadProgPP::t(), QmitkNDIToolDelegate::TypeCol, and UpdateTrackerFromToolTable().
Referenced by OnAddPassiveTool(), OnConnect(), OnDisconnect(), and OnDiscoverTools().
{ disconnect(m_Controls->m_ToolTable, SIGNAL(itemChanged(QTableWidgetItem*)), this, SLOT(OnTableItemChanged(QTableWidgetItem*))); // stop listening to table changes disconnect(m_Controls->m_ToolTable->model(), SIGNAL(dataChanged(const QModelIndex &, const QModelIndex &)), this, SLOT(UpdateTrackerFromToolTable(const QModelIndex &, const QModelIndex &))); m_Controls->m_ToolTable->clearContents(); m_Controls->m_ToolTable->setRowCount(0); if (m_Tracker.IsNull() || (m_Controls == NULL)) return; m_Controls->m_ToolTable->setRowCount(m_Tracker->GetToolCount()); for (unsigned int i = 0; i < m_Tracker->GetToolCount(); ++i) { mitk::TrackingTool* t = m_Tracker->GetTool(i); if (t == NULL) { m_Controls->m_ToolTable->setItem(i, QmitkNDIToolDelegate::IndexCol, new QTableWidgetItem("INVALID")); // Index continue; } m_Controls->m_ToolTable->setItem(i, QmitkNDIToolDelegate::IndexCol, new QTableWidgetItem(QString::number(i))); // Index m_Controls->m_ToolTable->setItem(i, QmitkNDIToolDelegate::NameCol, new QTableWidgetItem(t->GetToolName())); // Name if (dynamic_cast<mitk::NDIPassiveTool*>(t)->GetSROMDataLength() > 0) m_Controls->m_ToolTable->setItem(i, QmitkNDIToolDelegate::SROMCol, new QTableWidgetItem("SROM file loaded")); // SROM file else m_Controls->m_ToolTable->setItem(i, QmitkNDIToolDelegate::SROMCol, new QTableWidgetItem("<click to load SROM file>")); // SROM file m_Controls->m_ToolTable->setItem(i, QmitkNDIToolDelegate::TypeCol, new QTableWidgetItem("<click to set type>")); // Type if (t->IsEnabled()) m_Controls->m_ToolTable->setItem(i, QmitkNDIToolDelegate::StatusCol, new QTableWidgetItem("Enabled")); // Status else m_Controls->m_ToolTable->setItem(i, QmitkNDIToolDelegate::StatusCol, new QTableWidgetItem("Disabled")); // Status m_Controls->m_ToolTable->setItem(i, QmitkNDIToolDelegate::NodeCol, new QTableWidgetItem("<click to select node>")); // Node /* set read-only/editable flags */ m_Controls->m_ToolTable->item(i, QmitkNDIToolDelegate::IndexCol)->setFlags(Qt::ItemIsEnabled | Qt::ItemIsSelectable | Qt::ItemIsDragEnabled); // Index m_Controls->m_ToolTable->item(i, QmitkNDIToolDelegate::NodeCol)->setFlags(Qt::ItemIsEnabled | Qt::ItemIsEditable | Qt::ItemIsSelectable | Qt::ItemIsDragEnabled); // Name m_Controls->m_ToolTable->item(i, QmitkNDIToolDelegate::SROMCol)->setFlags(Qt::ItemIsEnabled | Qt::ItemIsEditable | Qt::ItemIsSelectable | Qt::ItemIsDragEnabled); // SROM file m_Controls->m_ToolTable->item(i, QmitkNDIToolDelegate::TypeCol)->setFlags(Qt::ItemIsEnabled | Qt::ItemIsEditable | Qt::ItemIsSelectable | Qt::ItemIsDragEnabled); // Type m_Controls->m_ToolTable->item(i, QmitkNDIToolDelegate::StatusCol)->setFlags(Qt::ItemIsEnabled | Qt::ItemIsSelectable | Qt::ItemIsDragEnabled); // Status m_Controls->m_ToolTable->item(i, QmitkNDIToolDelegate::NodeCol)->setFlags(Qt::ItemIsEnabled | Qt::ItemIsEditable | Qt::ItemIsSelectable | Qt::ItemIsDragEnabled); // Node } m_Controls->m_ToolTable->resizeColumnsToContents(); connect(m_Controls->m_ToolTable, SIGNAL(itemChanged(QTableWidgetItem*)), this, SLOT(OnTableItemChanged(QTableWidgetItem*))); // listen to table changes again connect(m_Controls->m_ToolTable->model(), SIGNAL(dataChanged(const QModelIndex &, const QModelIndex &)), this, SLOT(UpdateTrackerFromToolTable(const QModelIndex &, const QModelIndex &))); }
void QmitkNDIConfigurationWidget::UpdateTrackerFromToolTable | ( | const QModelIndex & | topLeft, |
const QModelIndex & | |||
) | [protected, slot] |
Definition at line 422 of file QmitkNDIConfigurationWidget.cpp.
References int(), mitk::NDIPassiveTool::LoadSROMFile(), m_Controls, Ui_QmitkNDIConfigurationWidget::m_ToolTable, m_Tracker, mitk::InternalTrackingTool::SetToolName(), QmitkNDIToolDelegate::SROMCol, and ToolsChanged().
Referenced by CreateConnections(), and UpdateToolTable().
{ //Colums ID doesn't have to be processed. if (topLeft.column()<1) return; if (m_Tracker.IsNull()) return; if (topLeft.row() >= (int) m_Tracker->GetToolCount()) return; QAbstractItemModel* model = m_Controls->m_ToolTable->model(); //define topleft contains row and column; row 0 is tool 0; column is index =0, Name =1, SROMFileName = 2; Type = 3; Status = 4; Node (?) = 5 //only update the changed item mitk::NDIPassiveTool* tool = dynamic_cast<mitk::NDIPassiveTool*> (m_Tracker->GetTool(topLeft.row())); if (tool == NULL) return; switch (topLeft.column()) { case 0: //index break; case 1: //name tool->SetToolName(model->data(model->index(topLeft.row(), 1)).toString().toLatin1()); emit ToolsChanged(); break; case QmitkNDIToolDelegate::SROMCol: //SROM File Name { QString romfile = model->data(model->index(topLeft.row(), QmitkNDIToolDelegate::SROMCol)).toString(); if (QFileInfo(romfile).exists()) tool->LoadSROMFile(romfile.toLatin1()); m_Tracker->InitializeWiredTools(); break; } //TODO: Add Node Status and Type here as well default: break; } }
void QmitkNDIConfigurationWidget::UpdateWidgets | ( | ) | [protected] |
Definition at line 140 of file QmitkNDIConfigurationWidget.cpp.
References GetStatusText(), Ui_QmitkNDIConfigurationWidget::m_AddToolBtn, Ui_QmitkNDIConfigurationWidget::m_Connect, m_Controls, Ui_QmitkNDIConfigurationWidget::m_DeviceStatus, Ui_QmitkNDIConfigurationWidget::m_DiscoverToolsBtn, Ui_QmitkNDIConfigurationWidget::m_lConnection, m_Tracker, OnConnect(), OnDisconnect(), mitk::TrackingDevice::Ready, mitk::TrackingDevice::Setup, and mitk::TrackingDevice::Tracking.
Referenced by OnConnect(), and OnDisconnect().
{ m_Controls->m_DeviceStatus->setText(this->GetStatusText()); if (m_Tracker.IsNull()) // not connected to tracker { m_Controls->m_Connect->setText("Connect"); m_Controls->m_lConnection->setText("III. Enable connection to device "); disconnect(m_Controls->m_Connect, SIGNAL(clicked()), this, SLOT(OnDisconnect())); connect(m_Controls->m_Connect, SIGNAL(clicked()), this, SLOT(OnConnect())); m_Controls->m_DiscoverToolsBtn->setDisabled(true); m_Controls->m_AddToolBtn->setDisabled(true); return; } if (m_Tracker->GetState() == mitk::TrackingDevice::Setup) { m_Controls->m_Connect->setText("Connect"); m_Controls->m_lConnection->setText("III. Enable connection to device "); disconnect(m_Controls->m_Connect, SIGNAL(clicked()), this, SLOT(OnDisconnect())); connect(m_Controls->m_Connect, SIGNAL(clicked()), this, SLOT(OnConnect())); m_Controls->m_DiscoverToolsBtn->setDisabled(true); m_Controls->m_AddToolBtn->setDisabled(true); return; } if ((m_Tracker->GetState() == mitk::TrackingDevice::Ready) || (m_Tracker->GetState() == mitk::TrackingDevice::Tracking)) { m_Controls->m_Connect->setText("Disconnect"); m_Controls->m_lConnection->setText("III. Disable connection to device "); disconnect(m_Controls->m_Connect, SIGNAL(clicked()), this, SLOT(OnConnect())); connect(m_Controls->m_Connect, SIGNAL(clicked()), this, SLOT(OnDisconnect())); m_Controls->m_DiscoverToolsBtn->setEnabled(true); m_Controls->m_AddToolBtn->setEnabled(true); } }
gui widgets
Definition at line 107 of file QmitkNDIConfigurationWidget.h.
Referenced by CreateConnections(), CreateQtPartControl(), GetDeviceName(), GetNode(), GetToolAndTypes(), GetToolName(), GetToolsByToolType(), GetToolType(), HideAuroraOptionsGroupbox(), HidePolarisOptionsGroupbox(), OnDiscoverDevices(), SetDeviceName(), UpdateToolTable(), UpdateTrackerFromToolTable(), UpdateWidgets(), and ~QmitkNDIConfigurationWidget().
Definition at line 110 of file QmitkNDIConfigurationWidget.h.
Referenced by CreateQtPartControl(), SetDataStorage(), SetPredicate(), SetTagProperty(), SetTagPropertyName(), and SetToolTypes().
Definition at line 109 of file QmitkNDIConfigurationWidget.h.
Referenced by ~QmitkNDIConfigurationWidget().
tracking device object
Definition at line 108 of file QmitkNDIConfigurationWidget.h.
Referenced by CreateTracker(), GetStatusText(), GetToolNamesList(), GetTracker(), OnAddPassiveTool(), OnConnect(), OnDisconnect(), OnDiscoverTools(), SetupTracker(), UpdateToolTable(), UpdateTrackerFromToolTable(), UpdateWidgets(), and ~QmitkNDIConfigurationWidget().