MAK RTIspy API Documentation for HLA 1.3
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
federateStatsDialog.h
Go to the documentation of this file.
1 /****************************************************************************
2  * Copyright (c) 2016 VT MAK
3  * All rights reserved.
4  ****************************************************************************/
5 
9 
10 #pragma once
11 
12 #include "rtiMsConfig.h"
13 #include <vlutil/vlMachineTypes.h>
14 #include <vlutil/vlFilename.h>
15 #include "assistantEnums.h"
16 #include <QMainWindow>
17 #include <map>
18 #include "rtiAmbAPITypes.h"
19 #include "fedAmbAPITypes.h"
20 #include "rtiMsgKind.h"
24 #include "assistantInfo.h"
26 
29 
30 class QGridLayout;
31 class QVBoxLayout;
32 class QHBoxLayout;
33 class QLabel;
34 class QPixmap;
35 class QStandardItemModel;
36 class QSortFilterProxyModel;
37 class QDialogButtonBox;
39 
40 
44 {
45  Q_OBJECT
46 
47 public:
48 
50  {
56 
57  DtMsgModelNumberOfColumns
58  };
59 
61  {
68 
69  DtRtiAmbServicesModelNumberOfColumns
70  };
71 
73  {
80 
81  DtFedAmbCallbacksModelNumberOfColumns
82  };
83 
85  {
94 
95  DtObjectModelNumberOfColumns
96  };
97 
99  {
106 
107  DtInteractionModelNumberOfColumns
108  };
109 
111 
112  const char* getObjectHeader(const DtFederateStatisticsDialogObjectModelColumnEnum col) const;
113  const char* getInteractionHeader( const DtFederateStatisticsDialogInteractionModelColumnEnum col ) const;
114  const char* getRtiAmbServicesHeader( const DtFederateStatisticsDialogRtiAmbServicesModelColumnEnum col ) const;
115  const char* getFedAmbCallbacksHeader( const DtFederateStatisticsDialogFedAmbCallbacksModelColumnEnum col ) const;
116  const char* getMsgHeader( const DtFederateStatisticsDialogMsgModelColumnEnum col ) const;
118 
120 
121  const char* getObjectHeaderToolTip(const DtFederateStatisticsDialogObjectModelColumnEnum col) const;
122  const char* getInteractionHeaderToolTip( const DtFederateStatisticsDialogInteractionModelColumnEnum col ) const;
123  const char* getRtiAmbServicesHeaderToolTip( const DtFederateStatisticsDialogRtiAmbServicesModelColumnEnum col ) const;
124  const char* getFedAmbCallbacksHeaderToolTip( const DtFederateStatisticsDialogFedAmbCallbacksModelColumnEnum col ) const;
125  const char* getMsgHeaderToolTip( const DtFederateStatisticsDialogMsgModelColumnEnum col ) const;
127 
128 
130  DtFederateStatisticsDialog(const MAKRti::DtFilename& configDir,
131  QWidget* parent = 0, Qt::WindowFlags f = 0);
132 
134  virtual ~DtFederateStatisticsDialog();
135 
137  virtual QSize sizeHint() const;
138 
140  void setFederateIcon(const QPixmap& icon);
141 
143  void setFederateType(const QString& t);
144 
146  void setFederateName(const QString& n);
147 
149  void setFederateProcess(const QString& p);
150 
152  void setFederateHost(const QString& h);
153 
155  void setFederationName(const QString& n);
156 
157  virtual void closeEvent(QCloseEvent * event);
158 
160 
161  virtual void updateMsgTablesAndGraphs(DtFloat64 currTime, const std::vector<DtRtiMsgKind>& msgKinds, const std::vector<DtU32>& msgNumSent,
162  const std::vector<DtU32>& msgNumReceived, const std::vector<DtU32>& msgBytesSent,
163  const std::vector<DtU32>& msgBytesReceived);
164 
165  virtual void updateRtiAmbTablesAndGraphs(DtFloat64 currTime, const std::vector<DtRtiAmbAPIType>& rtiAmbTypes,
166  const std::vector<DtU32>& rtiAmbNumCalls, const std::vector<DtFloat64>& rtiAmbTotalTime,
167  const std::vector<DtFloat64>& rtiAmbAvgTime, const std::vector<DtFloat64>& rtiAmbMinTime,
168  const std::vector<DtFloat64>& rtiAmbMaxTime);
169 
170  virtual void updateFedAmbTablesAndGraphs(DtFloat64 currTime, const std::vector<DtFedAmbAPIType>& fedAmbTypes,
171  const std::vector<DtU32>& fedAmbNumCalls, const std::vector<DtFloat64>& fedAmbTotalTime,
172  const std::vector<DtFloat64>& fedAmbAvgTime, const std::vector<DtFloat64>& fedAmbMinTime,
173  const std::vector<DtFloat64>& fedAmbMaxTime);
174 
175  virtual void updateObjectsTablesAndGraphs(DtFloat64 currTime, const std::vector<DtU32>& objectInstanceHandles,
176  const std::vector<DtU32>& objectClassHandles, const std::vector<DtU32>& objectNumRegistered,
177  const std::vector<DtU32>& objectBytesReceived, const std::vector<DtU32>& objectUpdatesSent,
178  const std::vector<DtU32>& objectBytesSent, std::set<DtU32>& unknownInstanceNamesHandles,
179  std::set<DtU32>& unknownClassNamesHandles);
180 
181  virtual void updateInteractionsTablesAndGraphs(DtFloat64 currTime,
182  const std::vector<DtU32>& interactionClassHandles,
183  const std::vector<DtU32>& interactionUpdatesReceived,
184  const std::vector<DtU32>& interactionBytesReceived,
185  const std::vector<DtU32>& interactionUpdatesSent, const std::vector<DtU32>& interactionBytesSent,
186  std::set<DtU32>&unknownClassNamesHandles);
187 
188  virtual void updateObjectTablesInstanceNames(const std::vector<DtU32>& instanceHandles,
189  const std::vector<MAKRti::DtString>& instanceNames);
190 
191  virtual void updateObjectTablesClassNames(const std::vector<DtU32>& classHandles,
192  const std::vector<MAKRti::DtString>& classNames);
193 
194  virtual void updateInteractionTablesClassNames( const std::vector<DtU32>& classHandles,
195  const std::vector<MAKRti::DtString>& classNames );
197 
198  const std::set<DtU32>& getUnknownObjectInstanceNamesHandlesAndClear() const;
199  void clearUnknownObjInstanceNamesHdls();
200 
202  void saveGuiConfiguration();
203 
206  void switchFederate();
207 
208 
211 
212  void setAssistantInfo(const DtAssistantInfo & info);
213  void setCompId(unsigned int compId);
215 
218 
219  void setFederationNameStr(const MAKRti::DtString & federationName);
220  MAKRti::DtString federationNameStr() const;
221 
222  void setFederateHandle(unsigned int federateHandle);
223  unsigned federateHandle() const;
225 
226  void setConnectionInfo(const DtRtiConnectionInfo& connInfo);
227 
228 signals:
229  void federateStatDlgClosing(const DtAssistantInfo&, int, const MAKRti::DtString&, int, const DtRtiConnectionInfo&);
230 
231 protected:
232 
234  void loadGuiConfiguration();
235 
237  virtual void showEvent( QShowEvent* event );
238 
240  virtual void hideEvent( QHideEvent* event );
241 
242 
243 public slots:
244 
246  void federateIdentifierUpdated( unsigned int );
247 
248 protected:
249 
251  void initBasicInfoWidgets();
252 
254  void initMsgStatsWidget();
255 
257  void initServiceStatsWidget();
258 
260  void initCallbackStatsWidget();
261 
263  void initObjectStatsWidget();
264 
266  void initInteractionStatsWidget();
267 
269  void initButtonBoxWidget();
270 
274  QDockWidget* initDockWidget(bool isFixed, Qt::Orientation ori, const QString& name = "");
275 
277  {
279  DtRow
280  };
281 
284  unsigned addHeaderItem(QStandardItemModel* model, const QString& text,
285  const QString& toolTip, DtColOrRow colOrRow);
286 
288  void updateFederateId(const QString& fedId);
289 
291  void updateFederateDescription();
292 
293 private:
294 
297 
300  void clearAll( );
301  MAKRti::DtString findObjectInstanceName(DtU32 instanceHandle, std::set<DtU32>&unknownInstanceNamesHandles);
302  MAKRti::DtString findObjectClassName(DtU32 classHandle, std::set<DtU32>&unknownClassNamesHandles);
303  MAKRti::DtString findInteractionClassName(DtU32 classHandle, std::set<DtU32>&unknownClassNamesHandles);
304 
308  QDockWidget* myMainDockWidget;
311 
315  QStandardItemModel* myMsgStatsModel;
316  QSortFilterProxyModel* myMsgStatsProxyModel;
317  QDockWidget* myMsgStatsDockWidget;
319  std::map<unsigned, unsigned> myMsgIdToRowMap;
321 
325  QStandardItemModel* myServiceStatsModel;
326  QSortFilterProxyModel* myServiceStatsProxyModel;
329  std::map<unsigned, unsigned> myServiceIdToRowMap;
331 
335  QStandardItemModel* myCallbackStatsModel;
336  QSortFilterProxyModel* myCallbackStatsProxyModel;
339  std::map<unsigned, unsigned> myCallbackIdToRowMap;
341 
345  QStandardItemModel* myObjectStatsModel;
346  QSortFilterProxyModel* myObjectStatsProxyModel;
348  std::map<unsigned, unsigned> myObjectIdToRowMap;
351 
355  QStandardItemModel* myInteractionStatsModel;
356  QSortFilterProxyModel* myInteractionStatsProxyModel;
358  std::map<unsigned, unsigned> myInteractionIdToRowMap;
361 
364 
367 
369 
381 
383  QDialogButtonBox* myButtonBox;
384 
387 
389  unsigned myUpdateCounter;
390 
393 
396 
399 
400  std::map<DtU32, MAKRti::DtString> myObjInstanceNamesByObjInstanceHdlsMap;
401  std::map<DtU32, MAKRti::DtString> myObjClassNamesByObjClassHdlsMap;
402  std::map<DtU32, MAKRti::DtString> myInterClassNamesByInterClassHdlsMap;
403 
405  DtFilename myConfigDir;
406 
409 
412 
414  static const MAKRti::DtFilename theConfigFilename;
415 
417  unsigned int myCompId;
418  MAKRti::DtString myFederationName;
419  unsigned int myFederateHandle;
421 };
422 
423 const char * findObjectClassName(DtU32 classHandle);

Document ID: Generated on Mon Jul 9 10:30:41 EDT 2018 from SVN revision 190224
Copyright © 2005-2018 VT MÄK Inc. All Rights Reserved (www.mak.com)