SystemStateMonitorWidget.cpp
Go to the documentation of this file.
1 /*
2  * This file is part of ArmarX.
3  *
4  * Copyright (C) 2011-2016, High Performance Humanoid Technologies (H2T), Karlsruhe Institute of Technology (KIT), all rights reserved.
5  *
6  * ArmarX is free software; you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License version 2 as
8  * published by the Free Software Foundation.
9  *
10  * ArmarX is distributed in the hope that it will be useful, but
11  * WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13  * GNU General Public License for more details.
14  *
15  * You should have received a copy of the GNU General Public License
16  * along with this program. If not, see <http://www.gnu.org/licenses/>.
17  *
18  * @package ArmarX::Gui
19  * @author Jan Issac ( jan.issac at gmail dot com)
20  * @date 2012
21  * @copyright http://www.gnu.org/licenses/gpl-2.0.txt
22  * GNU General Public License
23  */
24 
26 
27 #include <string>
28 #include <vector>
29 
30 #include <QApplication>
31 #include <QLineEdit>
32 #include <QStyledItemDelegate>
33 #include <QVector>
34 
37 #include <ArmarXCore/interface/core/ArmarXManagerInterface.h>
38 
39 #include <ArmarXGui/gui-plugins/SystemStateMonitorPlugin/ui_ArmarXManagerRepositoryDialog.h>
42 
43 namespace armarx
44 {
45  class PropertyEditingDelegate : public QStyledItemDelegate
46  {
47  public:
48  PropertyEditingDelegate(armarx::ManagerPrxMap* managerPrxMap) : managerPrxMap(managerPrxMap)
49  {
50  }
51 
52  // QAbstractItemDelegate interface
53  QWidget*
54  createEditor(QWidget* parent,
55  const QStyleOptionViewItem& option,
56  const QModelIndex& index) const override
57  {
58  return new QLineEdit(parent);
59  }
60 
61  void
62  setEditorData(QWidget* editor, const QModelIndex& index) const override
63  {
64  QLineEdit* lineEdit = qobject_cast<QLineEdit*>(editor);
65  if (lineEdit)
66  {
67  QString propValue = index.data().toString();
68  propValue.remove(0, propValue.indexOf(":") + 2);
69  QString propName = index.data().toString();
70 
71  propName.truncate(propName.indexOf(":") - 1);
72  lineEdit->setText(propValue);
73  lineEdit->setProperty("propertyName", propName);
74  }
75  }
76 
77  void
78  setModelData(QWidget* editor,
79  QAbstractItemModel* model,
80  const QModelIndex& index) const override
81  {
82  QLineEdit* lineEdit = qobject_cast<QLineEdit*>(editor);
83  if (lineEdit)
84  {
85  model->setData(index,
86  lineEdit->property("propertyName").toString() + " : " +
87  lineEdit->text());
88  auto it = managerPrxMap->find(index.parent().parent().parent().data().toString());
89  if (it != managerPrxMap->end())
90  {
91  armarx::ArmarXManagerInterfacePrx prx = it->second;
92  prx->getPropertiesAdmin()->ice_collocationOptimized(false)->setProperties(
93  {{lineEdit->property("propertyName").toString().toStdString(),
94  lineEdit->text().toStdString()}});
95  }
96  }
97  }
98 
99  private:
100  armarx::ManagerPrxMap* managerPrxMap;
101  };
102 
104  {
105  setupModel();
106  setupView();
107  qRegisterMetaType<StateUpdateMap>("StateUpdateMap");
108  qRegisterMetaType<ArmarXManagerItem::ManagerDataMap>("ArmarXManagerItem::ManagerDataMap");
109  qRegisterMetaType<ArmarXManagerItem::ManagerData>("ArmarXManagerItem::ManagerData");
110  qRegisterMetaType<ManagerPrxMap>("ManagerPrxMap");
111 
112 
113  filterExpansionTimer.setSingleShot(true);
114  connect(&filterExpansionTimer, SIGNAL(timeout()), this, SLOT(delayedFilterExpansion()));
115  connect(ui.btnProblematicOnly,
116  SIGNAL(toggled(bool)),
117  this,
118  SLOT(on_btnProblematicOnly_toggled(bool)),
119  Qt::UniqueConnection);
120 
121  fillLegendLayout(ui.colorLegendLayout, *monitoredManagerModel);
122  }
123 
125  {
126  // stateUpdateTimer->stop();
127  if (stateUpdateTask)
128  {
129  stateUpdateTask->stop();
130  }
131 
132  delete managerRepositoryModel;
133  delete monitoredManagerModel;
134  // delete stateUpdateTimer;
135  }
136 
137  void
139  {
140  managerRepositoryModel = new ArmarXManagerModel();
141  monitoredManagerModel = new ArmarXManagerModel();
142  }
143 
144  void
146  {
147  ui.setupUi(getWidget());
148 
149  managerRepositoryDialog = new ArmarXManagerRepositoryDialog(
150  managerRepositoryModel, monitoredManagerModel, getWidget());
151  managerRepositoryDialog->setModal(true);
152  connect(managerRepositoryDialog, SIGNAL(accepted()), this, SLOT(acceptConfig()));
153  connect(managerRepositoryDialog,
154  SIGNAL(requestedManagerScan()),
155  this,
156  SLOT(retrieveOnlineManagers()));
157  ui.monitoredManagersTree->setItemDelegate(
158  new PropertyEditingDelegate(&currentManagerPrxMap));
159  filterModel = new InfixFilterModel(this);
160  filterModel->addCustomFilter(
161  [this](QAbstractItemModel* model, int source_row, const QModelIndex& source_parent)
162  {
163  QModelIndex index0 = model->index(source_row, 0, source_parent);
164  if (this->ui.btnProblematicOnly->isChecked())
165  {
166  auto variant =
167  index0.data((int)ArmarXManagerModel::UserDataRoles::ComponentStarted);
168  auto variantDependency =
169  index0.data((int)ArmarXManagerModel::UserDataRoles::ResolvedDependency);
170  if (variant.isValid())
171  {
172  // ARMARX_INFO << "Checking entry: " << index0.data().toString() << " val: " << variant.toBool() << " param: " << hideResolvedComponents;
173  if (variant.toBool())
174  {
175  // ARMARX_INFO << "Resolve: Hiding " << index0.data().toString();
176  return false;
177  }
178  }
179  if (variantDependency.isValid())
180  {
181  if (variantDependency.toBool())
182  {
183  return false;
184  }
185  }
186  if (!variant.isValid() && !variantDependency.isValid())
187  {
188  return false;
189  }
190  // ARMARX_INFO << "Showing entry: " << index0.data().toString() << " state: " <<
191  // (variantDependency.isValid() ? std::to_string(variantDependency.toBool()) : "none")
192  // << " - " << (variant.isValid() ? std::to_string(variant.toBool()) : "none");
193  }
194 
195  return true;
196  });
197  filterModel->setSourceModel(monitoredManagerModel);
198  filterModel->setFilterCaseSensitivity(Qt::CaseInsensitive);
199  ui.monitoredManagersTree->setModel(filterModel);
200 
201  connect(ui.lineEditFilter,
202  SIGNAL(textChanged(QString)),
203  filterModel,
204  SLOT(setFilterFixedString(QString)));
205  connect(ui.lineEditFilter,
206  SIGNAL(textChanged(QString)),
207  this,
208  SLOT(expandFilterSelection(QString)),
209  Qt::QueuedConnection);
210 
211  connect(ui.configureButton, SIGNAL(clicked()), this, SLOT(openManagerRepositoryDialog()));
212 
213  connect(this,
214  SIGNAL(updateManagerStatesSignal(ArmarXManagerItem::ManagerDataMap)),
215  this,
216  SLOT(updateManagerStates(ArmarXManagerItem::ManagerDataMap)));
217 
218  // stateUpdateTimer->start();
219  }
220 
221  void
222  SystemStateMonitorWidget::loadSettings(QSettings* settings)
223  {
224  managerRepositoryModel->populate(settings->value("ManagerRepository").toStringList());
225 
226  monitoredManagerModel->populate(settings->value("MonitoredManagers").toStringList());
227  ui.monitoredManagersTree->expandToDepth(1);
228  }
229 
230  void
231  SystemStateMonitorWidget::saveSettings(QSettings* settings)
232  {
233  settings->setValue("ManagerRepository", managerRepositoryModel->toStringList());
234 
235  settings->setValue("MonitoredManagers", monitoredManagerModel->toStringList());
236  }
237 
238  void
239  SystemStateMonitorWidget::onInitComponent()
240  {
241  monitoredManagerModel->setIceManager(getIceManager());
242  managerRepositoryModel->setIceManager(getIceManager());
243  }
244 
245  void
246  SystemStateMonitorWidget::onConnectComponent()
247  {
248  stateUpdateTask = new PeriodicTask<SystemStateMonitorWidget>(
249  this,
250  &SystemStateMonitorWidget::updateManagerObjectsState,
251  500,
252  false,
253  "SystemStateMonitorUpdate");
254  stateUpdateTask->setDelayWarningTolerance(5000);
255  stateUpdateTask->start();
256  if (monitoredManagerModel->empty()) // only if fresh connect without preconfig
257  {
258  prefillView();
259  }
260  else
261  {
262  std::unique_lock lock(managerPrxMapMutex);
263  currentManagerPrxMap = monitoredManagerModel->getManagerProxyMap();
264  }
265  }
266 
267  void
268  SystemStateMonitorWidget::onDisconnectComponent()
269  {
270  if (stateUpdateTask)
271  {
272  stateUpdateTask->stop();
273  }
274  }
275 
276  void
277  SystemStateMonitorWidget::onExitComponent()
278  {
279  if (stateUpdateTask)
280  {
281  stateUpdateTask->stop();
282  }
283  }
284 
285  void
286  SystemStateMonitorWidget::updateManagerStates(
287  const ArmarXManagerItem::ManagerDataMap& managerData)
288  {
289  CHECK_QT_THREAD(getWidget());
290 
291  std::unique_lock lock(monitoredManagerModel->getMutex());
292 
293  monitoredManagerModel->updateManagerDetails(managerData);
294  filterModel->invalidate();
295  }
296 
297  bool
298  SystemStateMonitorWidget::retrieveManagerData(ArmarXManagerInterfacePrx prx,
299  ArmarXManagerItem::ManagerData& managerData)
300  {
301  CHECK_NOT_QT_THREAD(getWidget());
302  bool result = false;
303  try
304  {
305  managerData.proxy = prx;
306  prx = prx->ice_timeout(1000);
307  managerData.name = QString::fromStdString(prx->ice_getIdentity().name);
308  managerData.appProperties = prx->getApplicationPropertyInfos();
309  result &= retrieveManagerObjectsState(prx, managerData.objects);
310  try
311  {
312  managerData.connection = prx->ice_collocationOptimized(false)->ice_getConnection();
313  managerData.endpointStr =
314  managerData.connection
315  ? QString::fromStdString(managerData.connection->getEndpoint()->toString())
316  : "Endpoint: no connection data";
317  }
318 
319  catch (const IceUtil::Exception& ex)
320  {
321  // ARMARX_INFO << deactivateSpam(5, managerData.name.toStdString()) << "Failed to get connection info for " << managerData.name.toStdString();
322  managerData.endpointStr =
323  QString::fromStdString("? (" + std::string(ex.ice_id()) + ")");
324  }
325  managerData.online = true;
326  }
327  catch (...)
328  {
329  managerData.online = false;
330  result = false;
331  }
332  return result;
333  }
334 
335  bool
336  SystemStateMonitorWidget::retrieveManagerObjectsState(
337  ArmarXManagerInterfacePrx prx,
338  ArmarXManagerItem::ObjectMap& objectStates)
339  {
340  CHECK_NOT_QT_THREAD(getWidget());
341  // get proxy if not set
342  // update existence state
343  try
344  {
345  prx->ice_timeout(200)->ice_ping();
346  // item->setOnline(true);
347  }
348  catch (...)
349  {
350  return false;
351  }
352 
353  // actual retrieval
354  Ice::StringSeq objectNames = prx->getManagedObjectNames();
355 
356  for (auto& objectName : objectNames)
357  {
358  ManagedIceObjectItem objEntry;
359  objEntry.name = objectName.c_str();
360  objEntry.state = prx->getObjectState(objectName);
361  objEntry.connectivity = prx->getObjectConnectivity(objectName);
362  objEntry.properties = prx->getObjectPropertyInfos(objectName);
363  try
364  {
365  objEntry.metaInfoMap = prx->getMetaInfo(objectName);
366  }
367  catch (...)
368  {
369  ARMARX_INFO << deactivateSpam(1000, objectName) << "Failed to get meta info for "
370  << objectName;
371  }
372  objectStates[objEntry.name] = (objEntry);
373  }
374 
375  return true;
376  }
377 
378  void
379  SystemStateMonitorWidget::updateManagerObjectsState()
380  {
381 
382  // std::unique_lock lock(monitoredManagerModel->getMutex());
383  // StateUpdateMap stateMap;
384  ArmarXManagerItem::ManagerDataMap managerDataMap;
385  {
386  decltype(currentManagerPrxMap) proxies;
387  {
388  std::unique_lock lock(managerPrxMapMutex);
389  proxies = currentManagerPrxMap;
390  }
391  IceUtil::Time start = IceUtil::Time::now();
392  for (auto it = proxies.begin(); it != proxies.end(); it++)
393  {
395  bool online = retrieveManagerObjectsState(it->second, stateMap);
396  managerDataMap[it->first].online = online;
397  managerDataMap[it->first].name = it->first;
398  managerDataMap[it->first].objects = stateMap;
399  if (online)
400  {
401  managerDataMap[it->first].appProperties =
402  it->second->getApplicationPropertyInfos();
403  }
404  retrieveManagerData(it->second, managerDataMap[it->first]);
405  }
406  ARMARX_DEBUG << "update duration: "
407  << (IceUtil::Time::now() - start).toMilliSecondsDouble();
408  }
409 
410  emit updateManagerStatesSignal(managerDataMap);
411  }
412 
413  void
414  SystemStateMonitorWidget::acceptConfig()
415  {
416  this->managerRepositoryModel->copyFrom(
417  managerRepositoryDialog->getManagerRepositoryModel());
418 
419  this->monitoredManagerModel->copyFrom(managerRepositoryDialog->getMonitoredManagersModel());
420  ui.monitoredManagersTree->expandToDepth(1);
421  std::unique_lock lock(managerPrxMapMutex);
422  currentManagerPrxMap = monitoredManagerModel->getManagerProxyMap();
423  }
424 
425  QStringList
426  SystemStateMonitorWidget::fetchOnlineManagers()
427  {
428  enableMainWidgetAsync(false);
429  auto admin = getIceManager()->getIceGridSession()->getAdmin();
430  ARMARX_INFO << "Getting managers";
431  IceGrid::ObjectInfoSeq objects = admin->getAllObjectInfos("*Manager");
432  ARMARX_INFO << "Got new managers";
433  IceGrid::ObjectInfoSeq::iterator iter = objects.begin();
434  IceGrid::ObjectInfoSeq result;
435 
436  while (iter != objects.end())
437  {
438  Ice::ObjectPrx current = iter->proxy;
439 
440  ArmarXManagerInterfacePrx object;
441 
442  // if objects are hanging we might get connection refused
443  try
444  {
445  object = ArmarXManagerInterfacePrx::checkedCast(current->ice_timeout(60));
446  }
447  catch (...)
448  {
449  ARMARX_INFO << current->ice_getIdentity().name << ": "
451  // remove dead objects
452  admin->removeObject(current->ice_getIdentity());
453  }
454  qApp->processEvents();
455 
456  if (object)
457  {
458  result.push_back(*iter);
459  }
460 
461  ++iter;
462  }
463  ARMARX_INFO << "Iterated through online managers";
464  enableMainWidgetAsync(true);
465 
466  QStringList managers;
467  for (const IceGrid::ObjectInfo& info : result)
468  {
469  managers.append(info.proxy->ice_getIdentity().name.c_str());
470  }
471 
472  return managers;
473  }
474 
475  void
476  SystemStateMonitorWidget::retrieveOnlineManagers()
477  {
478  managerRepositoryDialog->addOnlineManagers(fetchOnlineManagers());
479  }
480 
481  void
482  SystemStateMonitorWidget::openManagerRepositoryDialog()
483  {
484  managerRepositoryDialog->getManagerRepositoryModel()->copyFrom(managerRepositoryModel);
485 
486  managerRepositoryDialog->getMonitoredManagersModel()->copyFrom(monitoredManagerModel);
487 
488  retrieveOnlineManagers();
489 
490  managerRepositoryDialog->show();
491  }
492 
493  void
494  SystemStateMonitorWidget::prefillView()
495  {
496  managerRepositoryModel->clear();
497  monitoredManagerModel->clear();
498 
499  QStringList managers = fetchOnlineManagers();
500  // enableMainWidgetAsync(false);
501  // ARMARX_INFO << "Got managers";
502  // QMetaObject::invokeMethod(this, "addArmarXManagers", Q_ARG(QStringList, managers));
503  addArmarXManagers(managers);
504  QMetaObject::invokeMethod(ui.monitoredManagersTree, "expandToDepth", Q_ARG(int, 0));
505  std::unique_lock lock(managerPrxMapMutex);
506  currentManagerPrxMap = monitoredManagerModel->getManagerProxyMap(managers);
507  }
508 
509  void
510  SystemStateMonitorWidget::addArmarXManagerEntries(ManagerPrxMap managers)
511  {
512  CHECK_QT_THREAD(getWidget());
513 
514  ARMARX_INFO << "Adding managers";
515  for (auto& pair : managers)
516  {
517  ArmarXManagerItem* item = new ArmarXManagerItem(pair.first);
518  item->setManagerProxy(pair.second);
519  monitoredManagerModel->appendRow(item);
520  }
521  ARMARX_INFO << "epanding managers";
522  ui.monitoredManagersTree->expandToDepth(1);
523  }
524 
525  void
526  SystemStateMonitorWidget::addArmarXManagers(QStringList managerNames)
527  {
528  // ARMARX_IMPORTANT << this->rowCount();
529  for (auto& name : managerNames)
530  {
531  try
532  {
534  data.name = name;
535  ARMARX_DEBUG << name.toStdString();
536  auto proxy =
537  getIceManager()->getProxy<ArmarXManagerInterfacePrx>(name.toStdString());
538  retrieveManagerData(proxy, data);
539  QMetaObject::invokeMethod(monitoredManagerModel,
540  "upsertManagerDetails",
542  ARMARX_DEBUG << name.toStdString() << " done";
543  }
544  catch (...)
545  {
547  }
548  }
549  }
550 
551  void
552  SystemStateMonitorWidget::expandFilterSelection(QString filterStr)
553  {
554  ARMARX_DEBUG_S << VAROUT(filterStr);
555  if (filterStr.length() == 0)
556  {
557  ui.monitoredManagersTree->collapseAll();
558  // ui.monitoredManagersTree->expandToDepth(1);
559  }
560  else
561  {
562  filterExpansionTimer.start(500);
563  }
564  }
565 
566  void
567  SystemStateMonitorWidget::delayedFilterExpansion()
568  {
569  CHECK_QT_THREAD(getWidget());
570 
571  InfixFilterModel::ExpandFilterResults(ui.monitoredManagersTree);
572  }
573 
574  void
575  armarx::SystemStateMonitorWidget::on_btnProblematicOnly_toggled(bool checked)
576  {
578 
579  // filterModel->setHideResolvedComponents(checked);
580  filterModel->invalidate();
581  InfixFilterModel::ExpandFilterResults(ui.monitoredManagersTree);
582  }
583 
584  void
585  SystemStateMonitorWidget::fillLegendLayout(QHBoxLayout* layout, ArmarXManagerModel& model) const
586  {
587  auto addLegendEntry = [layout, &model](ManagedIceObjectState state, const QString& text)
588  {
589  QLabel* label = new QLabel(text);
590  {
591  QBrush brush = model.getBrush(state);
592  QPalette p = label->palette();
593  p.setColor(label->backgroundRole(), brush.color());
594  label->setPalette(p);
595  label->setAutoFillBackground(true);
596  }
597  {
598  QFont font = label->font();
599  font.setPointSize(10);
600  label->setFont(font);
601  }
602  layout->addWidget(label);
603  };
604 
605  addLegendEntry(armarx::eManagedIceObjectCreated, "Created");
606  addLegendEntry(armarx::eManagedIceObjectInitializing, "Initializing");
607  addLegendEntry(armarx::eManagedIceObjectInitialized, "Initialized");
608  addLegendEntry(armarx::eManagedIceObjectInitializationFailed, "Initialization Failed");
609  addLegendEntry(armarx::eManagedIceObjectStarting, "Connecting");
610  addLegendEntry(armarx::eManagedIceObjectStarted, "Connected");
611  addLegendEntry(armarx::eManagedIceObjectStartingFailed, "Connecting Failed");
612  addLegendEntry(armarx::eManagedIceObjectExiting, "Exiting");
613  addLegendEntry(armarx::eManagedIceObjectExited, "Exited");
614  }
615 
616  bool
618  {
619  return hideResolvedComponents;
620  }
621 
622  void
624  {
626  }
627 } // namespace armarx
armarx::ManagedIceObjectItem::name
QString name
Definition: ManagedIceObjectItem.h:47
armarx::PropertyEditingDelegate::setEditorData
void setEditorData(QWidget *editor, const QModelIndex &index) const override
Definition: SystemStateMonitorWidget.cpp:62
armarx::ArmarXManagerItem::ManagerData::appProperties
ObjectPropertyInfos appProperties
Definition: ArmarXManagerItem.h:52
index
uint8_t index
Definition: EtherCATFrame.h:59
armarx::ManagedIceObjectItem::properties
ObjectPropertyInfos properties
Definition: ManagedIceObjectItem.h:50
armarx::PropertyEditingDelegate::setModelData
void setModelData(QWidget *editor, QAbstractItemModel *model, const QModelIndex &index) const override
Definition: SystemStateMonitorWidget.cpp:78
armarx::ArmarXManagerModel
Definition: ArmarXManagerModel.h:48
armarx::ArmarXManagerRepositoryDialog
Definition: ArmarXManagerRepositoryDialog.h:46
armarx::ManagedIceObjectItem::state
ManagedIceObjectState state
Definition: ManagedIceObjectItem.h:48
InfixFilterModel.h
armarx::ArmarXManagerItem::ManagerData::proxy
ArmarXManagerInterfacePrx proxy
Definition: ArmarXManagerItem.h:50
armarx::ArmarXManagerItem::ManagerData::online
bool online
Definition: ArmarXManagerItem.h:49
armarx::ManagedIceObjectItem::metaInfoMap
StringVariantBaseMap metaInfoMap
Definition: ManagedIceObjectItem.h:52
armarx::SystemStateMonitorFilterModel::setHideResolvedComponents
void setHideResolvedComponents(bool value)
Definition: SystemStateMonitorWidget.cpp:623
deactivateSpam
SpamFilterDataPtr deactivateSpam(SpamFilterDataPtr const &spamFilter, float deactivationDurationSec, const std::string &identifier, bool deactivate)
Definition: Logging.cpp:75
armarx::GetHandledExceptionString
std::string GetHandledExceptionString()
Definition: Exception.cpp:165
armarx::PropertyEditingDelegate::createEditor
QWidget * createEditor(QWidget *parent, const QStyleOptionViewItem &option, const QModelIndex &index) const override
Definition: SystemStateMonitorWidget.cpp:54
cxxopts::value
std::shared_ptr< Value > value()
Definition: cxxopts.hpp:855
armarx::ArmarXManagerItem::ManagerData::name
QString name
Definition: ArmarXManagerItem.h:48
ARMARX_DEBUG_S
#define ARMARX_DEBUG_S
Definition: Logging.h:205
if
if(!yyvaluep)
Definition: Grammar.cpp:645
armarx::SystemStateMonitorWidget::setupModel
void setupModel()
Model setup.
Definition: SystemStateMonitorWidget.cpp:138
data
uint8_t data[1]
Definition: EtherCATFrame.h:68
ARMARX_DEBUG
#define ARMARX_DEBUG
Definition: Logging.h:184
armarx::InfixFilterModel::ExpandFilterResults
static void ExpandFilterResults(QTreeView *treeView)
Expands the treeview that all items that match the filterstring are expanded and directly visible.
Definition: InfixFilterModel.cpp:70
armarx::SystemStateMonitorWidget::setupView
void setupView()
View setup.
Definition: SystemStateMonitorWidget.cpp:145
armarx::ArmarXManagerItem::ManagerDataMap
std::map< QString, ManagerData > ManagerDataMap
Definition: ArmarXManagerItem.h:57
armarx::SystemStateMonitorWidget::acceptConfig
void acceptConfig()
Accept config changes.
Definition: SystemStateMonitorWidget.cpp:414
IceGridAdmin.h
armarx::armem::Time
armarx::core::time::DateTime Time
Definition: forward_declarations.h:13
armarx::ArmarXManagerItem::ManagerData::objects
ObjectMap objects
Definition: ArmarXManagerItem.h:51
armarx::ArmarXManagerItem::ManagerData::connection
Ice::ConnectionPtr connection
Definition: ArmarXManagerItem.h:53
option
#define option(type, fn)
CoreObjectFactories.h
SystemStateMonitorWidget.h
CHECK_QT_THREAD
#define CHECK_QT_THREAD(qtObject)
Macro to check whether the current function is executed in the thread of the given Qt object.
Definition: QtUtil.h:30
armarx::SystemStateMonitorFilterModel::getHideResolvedComponents
bool getHideResolvedComponents() const
Definition: SystemStateMonitorWidget.cpp:617
ARMARX_INFO
#define ARMARX_INFO
Definition: Logging.h:181
armarx::ArmarXManagerItem::ObjectMap
QMap< QString, ManagedIceObjectItem > ObjectMap
Definition: ArmarXManagerItem.h:44
VAROUT
#define VAROUT(x)
Definition: StringHelpers.h:198
armarx::ManagedIceObjectItem::connectivity
ManagedIceObjectConnectivity connectivity
Definition: ManagedIceObjectItem.h:49
armarx::PropertyEditingDelegate::PropertyEditingDelegate
PropertyEditingDelegate(armarx::ManagerPrxMap *managerPrxMap)
Definition: SystemStateMonitorWidget.cpp:48
QtUtil.h
armarx::ManagerPrxMap
std::map< QString, ArmarXManagerInterfacePrx > ManagerPrxMap
Definition: ArmarXManagerModel.h:46
armarx::viz::toString
const char * toString(InteractionFeedbackType type)
Definition: Interaction.h:28
armarx::PropertyEditingDelegate
Definition: SystemStateMonitorWidget.cpp:45
armarx::SystemStateMonitorFilterModel::hideResolvedComponents
bool hideResolvedComponents
Definition: SystemStateMonitorWidget.h:260
armarx::ArmarXManagerItem::ManagerData
Definition: ArmarXManagerItem.h:46
armarx::InfixFilterModel
This proxy model reimplements the filterAcceptsRow function with a new behavior: All elements that fi...
Definition: InfixFilterModel.h:42
armarx::ArmarXWidgetController::getWidget
virtual QPointer< QWidget > getWidget()
getWidget returns a pointer to the a widget of this controller.
Definition: ArmarXWidgetController.cpp:54
armarx::PeriodicTask
Definition: ArmarXManager.h:70
CHECK_NOT_QT_THREAD
#define CHECK_NOT_QT_THREAD(qtObject)
Definition: QtUtil.h:36
armarx::handleExceptions
void handleExceptions()
Definition: Exception.cpp:157
armarx::SystemStateMonitorWidget::~SystemStateMonitorWidget
~SystemStateMonitorWidget() override
Definition: SystemStateMonitorWidget.cpp:124
armarx::ArmarXManagerItem::ManagerData::endpointStr
QString endpointStr
Definition: ArmarXManagerItem.h:54
armarx
This file offers overloads of toIce() and fromIce() functions for STL container types.
Definition: ArmarXTimeserver.cpp:27
armarx::ManagedIceObjectItem
Definition: ManagedIceObjectItem.h:37
armarx::SystemStateMonitorWidget::retrieveOnlineManagers
void retrieveOnlineManagers()
Retrieves the online managers.
Definition: SystemStateMonitorWidget.cpp:476
armarx::SystemStateMonitorWidget::SystemStateMonitorWidget
SystemStateMonitorWidget()
Definition: SystemStateMonitorWidget.cpp:103