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().
1.7.2