MAK RTIspy API Documentation for HLA 1.3
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
fomStatsDialog.h
Go to the documentation of this file.
1 /****************************************************************************
2  * Copyright (c) 2017 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>
19 #include "vlutil/vlFedTarget.h"
20 #include <QtGui/QStandardItemModel>
21 #include "assistantInfo.h"
23 
24 class QGridLayout;
25 class QVBoxLayout;
26 class QHBoxLayout;
27 class QLabel;
28 class QPixmap;
29 class QStandardItemModel;
30 class QSortFilterProxyModel;
31 class QDialogButtonBox;
33 class QStandardItem;
35 
39 {
40  Q_OBJECT
41 
42 public:
44  {
48  DtObjectModelNumberOfColumns
49  };
50 
52  {
56  DtInteractionModelNumberOfColumns
57  };
58 
60  {
67  DtAttributeModelNumberOfColumns
68  };
69 
71  {
74 // DtParameterPublishColumn,
75 // DtParameterSubscribeColumn,
78  DtParameterNumberOfColumns
79  };
80 
82  DtFomStatisticsDialog(const MAKRti::DtFilename& configDir,
83  QWidget* parent = 0, Qt::WindowFlags f = 0);
84 
86  virtual ~DtFomStatisticsDialog();
87 
89  virtual QSize sizeHint() const;
90 
92  void setFederateIcon(const QPixmap& icon);
93 
95  void setFederateType(const QString& t);
96 
98  void setFederateName(const QString& n);
99 
101  void setFederateProcess(const QString& p);
102 
104  void setFederateHost(const QString& h);
105 
107  void setFederationName(const QString& n);
108 
109  virtual void closeEvent(QCloseEvent * event);
111  void saveGuiConfiguration();
112 
113  void updateObjectFomTreeData( const std::vector<MAKRti::DtU32>& classHandles,
114  const std::vector<MAKRti::DtU32>& parentClassHandles, const std::vector<MAKRti::DtString>& classNames);
115  void updateInteractionFomTreeData( const std::vector<MAKRti::DtU32>& classHandles,
116  const std::vector<MAKRti::DtU32>& parentClassHandles, const std::vector<MAKRti::DtString>& classNames);
117 
118 
119  virtual void updateAttributesTable(const MAKRti::DtString& name, MAKRti::DtU32 handle);
120 
121  virtual void updateParametersTable(const MAKRti::DtString& name, MAKRti::DtU32 handle);
122 
123  void clearAttributesNames();
124 
125  void updateAttributeNames(const std::vector<MAKRti::DtU32>& objectClassHandles,
126  const std::vector<MAKRti::DtU32>& attributeHandles,
127  const std::vector<MAKRti::DtString>& attributeNames,
128  const std::vector<MAKRti::DtU32>& parentClassHandles,
129  const std::vector<MAKRti::DtU32>& totalClassHandles);
130 
131  void clearParameterNames();
132 
133  void updateParameterNames(const std::vector<MAKRti::DtU32>& interClassHandles,
134  const std::vector<MAKRti::DtU32>& paramHandles,
135  const std::vector<MAKRti::DtString>& paramNames,
136  const std::vector<MAKRti::DtU32>& parentInterHandles,
137  const std::vector<MAKRti::DtU32>& totalInterHandles);
138  void updateAttrFomState(const std::vector<MAKRti::DtU32>& objectClassHandles,
139  const std::vector<MAKRti::DtU32>& attributeHandles,
140  const std::vector<bool>& attributePub,
141  const std::vector<bool>& attributeSub,
142  const std::vector<DtTransportType>& attributeTransport,
143  const std::vector<DtOrderType>& attributeOrder,
144  const std::vector<MAKRti::DtU32>& objectPubSubHandles,
145  const std::vector<bool>& objPub,
146  const std::vector<bool>& ObjSub);
147  void updateParamFomState( const std::vector<MAKRti::DtU32>& objectClassHandles,
148  const std::vector<MAKRti::DtU32>& attributeHandles,
149  const std::vector<bool>& attributePub, const std::vector<bool>& attributeSub,
150  const std::vector<DtTransportType>& attributeTransport,
151  const std::vector<DtOrderType>& attributeOrder,
152  const std::vector<MAKRti::DtU32>& objectPubSubHandles,
153  const std::vector<bool>& objPub, const std::vector<bool>& ObjSub);
154 
155  void clearAll( );
156  void switchFederate();
157 
158  void refresh();
159 
160  void setFederationNameStr(const MAKRti::DtString& federationName);
161  MAKRti::DtString federationNameStr();
162  void setFederateHandle(int federateHandle);
163  int federateHandle();
164 
165  void setAssistantInfo(const DtAssistantInfo & info);
166  void setCompId(unsigned int compId);
167 
168  void setConnInfo(const DtRtiConnectionInfo& connInfo);
169 
170 
171 signals:
172  void fomStatDlgClosing(const DtAssistantInfo&, int, const MAKRti::DtString&, int, const DtRtiConnectionInfo&);
173 
174 protected:
175 
177  void loadGuiConfiguration();
178 
180  virtual void showEvent( QShowEvent* event );
181 
183  virtual void hideEvent( QHideEvent* event );
184 
185 public slots:
186 
188  void federateIdentifierUpdated( unsigned int );
189 
190  void processObjectSelection(const QModelIndex& index, bool forceUpdate = false);
191 
192  void processInteractionSelection(const QModelIndex& index, bool forceUpdate = false);
193 
194 protected:
195 
197  void initBasicInfoWidgets();
198 
200  void initObjectStatsWidget();
201 
203  void initInteractionStatsWidget();
204 
206  void initButtonBoxWidget();
207 
211  QDockWidget* initDockWidget(bool isFixed, Qt::Orientation ori, const QString& name = "");
212 
214  {
216  DtRow
217  };
218 
221  unsigned addHeaderItem(QStandardItemModel* model, const QString& text,
222  DtColOrRow colOrRow);
223 
225  void updateFederateId(const QString& fedId);
226 
227 private:
228 
231 
233  DtFomStatisticsDialog &operator=(const DtFomStatisticsDialog&);
234  MAKRti::DtString getFullObjectName(QStandardItem * objectItem, bool addHandle = false);
235  MAKRti::DtString getFullObjectName(MAKRti::DtU32 objectHandle, bool addHandle = false);
236  MAKRti::DtString getFullInteractionName(QStandardItem * interactionItem, bool addHandle = false);
237  MAKRti::DtString getFullInteractionName(MAKRti::DtU32 interactionHandle, bool addHandle = false);
238  const char * getObjHeader( const enum DtFomStatisticsDialogObjectModelColumnEnum col );
239  const char * getInterHeader( const enum DtFomStatisticsDialogInteractionModelColumnEnum col );
240  const char * getAttrHeader( const enum DtFomStatisticsDialogAttributeModelColumnEnum col );
241  const char * getParamHeader( const enum DtFomStatisticsDialogParameterModelColumnEnum col );
242  void updateObjectPubSub(const std::vector<MAKRti::DtU32>& objectPubSubHandles,
243  const std::vector<bool>& objPub,
244  const std::vector<bool>& ObjSub);
245  void updateInteractionPubSub( const std::vector<MAKRti::DtU32>& objectPubSubHandles,
246  const std::vector<bool>& objPub, const std::vector<bool>& objSub);
247 
251  QDockWidget* myMainDockWidget;
254 
258  QStandardItemModel* myObjectStatsModel;
259  QSortFilterProxyModel* myObjectStatsProxyModel;
261  std::map<unsigned, unsigned> myObjectIdToRowMap;
263  QStandardItemModel* myAttributeStatsModel;
264  QSortFilterProxyModel* myAttributeStatsProxyModel;
266 
270  QStandardItemModel* myInteractionStatsModel;
271  QSortFilterProxyModel* myInteractionStatsProxyModel;
273  std::map<unsigned, unsigned> myInteractionIdToRowMap;
275  QStandardItemModel* myParameterStatsModel;
276  QSortFilterProxyModel* myParameterStatsProxyModel;
278 
281 
284 
286 
298 
300  QDialogButtonBox* myButtonBox;
301 
304 
305  std::map<DtU32, MAKRti::DtString> myObjClassNamesByObjClassHdlsMap;
306  std::map<DtU32, MAKRti::DtString> myInterClassNamesByInterClassHdlsMap;
307 
308  std::map<MAKRti::DtU32, QStandardItem*> myObjectItemsByObjectHandleMap;
309  std::map<QStandardItem*, MAKRti::DtU32> myObjectHandlesByObjectItemsMap;
310  std::map<MAKRti::DtU32, QStandardItem*> myInteractionItemsByInteractionHandleMap;
311  std::map<QStandardItem*, MAKRti::DtU32> myInteractionHandlesByInteractionItemsMap;
312 
313  std::map<MAKRti::DtU32, QModelIndex> myObjPubItemsByObjHandlesMap;
314  std::map<MAKRti::DtU32, QModelIndex> myObjSubItemsByObjHandlesMap;
315 
316  MAKRti::DtU32 myLatencyTestHandle;
317 
318  MAKRti::DtU32 myObjectRootHandle;
319  MAKRti::DtU32 myInteractionRootHandle;
320 
321  std::map<MAKRti::DtU32, MAKRti::DtU32> myObjectParentHandleByObjectHandleMap;
322  std::map<MAKRti::DtU32, MAKRti::DtU32> myInteractionParentHandleByInteractionHandleMap;
323 
324 
325  std::map< MAKRti::DtU32, std::vector<MAKRti::DtU32> > myAttributeHandlesByAttrObjectClassHandleMap;
326  std::map< MAKRti::DtU32, std::vector<MAKRti::DtString> > myAttributeNamesByAttrObjectClassHandleMap;
327  std::map< MAKRti::DtU32, std::vector<MAKRti::DtU32> > myParameterHandlesByParamInteractionHandleMap;
328  std::map< MAKRti::DtU32, std::vector<MAKRti::DtString> > myParameterNamesByParamInteractionHandleMap;
329 
330  typedef std::pair <MAKRti::DtU32, MAKRti::DtU32> DtHandlePair;
331  std::map<DtHandlePair, bool> myAttrPubByObjAttrHandlePair;
332  std::map<DtHandlePair, bool> myAttrSubByObjAttrHandlePair;
333  std::map<DtHandlePair, DtTransportType> myAttrTransportByObjAttrHandlePair;
334  std::map<DtHandlePair, DtOrderType> myAttrOrderByObjAttrHandlePair;
335  std::map<MAKRti::DtU32, bool> myObjPubByObjHandleMap;
336  std::map<MAKRti::DtU32, bool> myObjSubByObjHandleMap;
337 
338 
339  std::map<DtHandlePair, bool> myParamPubByIntParamHandlePair;
340  std::map<DtHandlePair, bool> myParamSubByIntParamHandlePair;
341  std::map<DtHandlePair, DtTransportType> myParamTransportByIntParamHandlePair;
342  std::map<DtHandlePair, DtOrderType> myParamOrderByIntParamHandlePair;
343  std::map<MAKRti::DtU32, bool> myIntPubByIntHandleMap;
344  std::map<MAKRti::DtU32, bool> myIntSubByIntHandleMap;
345 
346  std::map<MAKRti::DtU32, QModelIndex> myIntPubItemsByIntHandlesMap;
347  std::map<MAKRti::DtU32, QModelIndex> myIntSubItemsByIntHandlesMap;
348 
350  DtFilename myConfigDir;
351 
354 
357 
359  static const MAKRti::DtFilename theConfigFilename;
360 
362  QIcon myBlankIcon;
364 
370  QStandardItem* myObjHlaManagerItem;
371  QStandardItem* myIntHlaManagerItem;
373 
374  MAKRti::DtString myFederationNameStr;
377  int myCompid;
379 
380 };

Document ID: Generated on Fri Sep 27 00:57:56 EDT 2019 from SVN revision 201708
Copyright © 2005-2018 VT MÄK Inc. All Rights Reserved (www.mak.com)