MAK Data Logger API Documentation for DIS
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
lgrSimInterface.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 1992-2024 MAK Technologies, Inc
3 ** All rights reserved.
4 ******************************************************************************/
5 
9 
10 #ifndef lgrSimInterface_H_
11 #define lgrSimInterface_H_
12 
13 #include <lgrCore/lgrCore.h>
14 #include <lgrCore/lgrInterface.h>
16 #include <lgrUtil/signalSlot.h>
18 
19 #include <vlutil/vlString.h>
20 #include <vlutil/vlTime.h>
21 #include <list>
22 
23 class DtExerciseConn;
24 
25 namespace MAKLogger
26 {
27  class DtLgrSimDriver;
28  class DtLgrSimCommandFactory;
29  class DtLgrPacketFilter;
30 
35  {
36  public:
37 
40 
41  public:
42 
45 
46 
48 
49  public:
50 
52  virtual ~DtLgrSimInterface();
53 
55  virtual DtLgrProtocolId protocolId() const = 0;
56 
58  virtual DtString protocolName() const;
59 
61  virtual void connect() const;
62 
64  virtual void connectToSharedExerciseConn(DtExerciseConn* exconn,
65  bool allowDrainInput,bool allowSetSimTime,bool allowUnsubscribe) const;
66 
68  virtual void disconnect() const;
69 
71  virtual void getLoggerName(DtString& name) const = 0;
72 
74  virtual bool isConnected() const;
75 
77  virtual void setDumpFilename(const DtString&);
78 
80  virtual bool processRemoteControls() const;
81 
84  virtual bool recordRemoteControls() const;
85 
87  virtual bool allowAllRemoteControls() const;
88 
90  virtual bool allowRemoteDelete() const;
91 
93  virtual int remoteControlId() const;
94 
96  virtual bool sendResponses() const;
97 
99  virtual bool crippleGui() const;
100 
102  virtual bool useLegacyPdu() const;
103 
105  virtual DtTime connectSendInterval() const;
106 
108  virtual DtTime heartbeatSendInterval() const;
109 
111  virtual bool useSimChannel() const;
112 
114  virtual bool useBackChannel() const;
115 
117  virtual const DtString& backChannelAddress() const;
118 
120  virtual int backChannelPort() const;
121 
123  virtual const DtString& backChannelInterface() const;
124 
126  virtual void setRemoteControlSettings(bool useSimChannel, bool useBackChannel, bool record,
127  bool allowDelete, bool allowAll, bool sendResponses, bool crippleGui, bool useLegacyPdu,
128  DtTime connectSendInterval, DtTime heartbeatSendInterval) const;
129 
131  virtual void addFilteredEntityName(const DtString& name) const;
132 
134  virtual void clearFilteredEntityNames() const;
135 
143  virtual void addFilter(DtLgrPacketFilter*) const;
144 
149  virtual void setFilterSettings(const DtLgrPacketFilter*) const;
150 
152  virtual int filterCount() const;
153 
156  virtual int filterIndex( const DtLgrPacketFilter* filter ) const;
157 
159  virtual void setScaleAttributes(bool scale) const;
160 
162  virtual bool scaleAttributes() const;
163 
165  virtual bool networkActivity() const;
166 
168  virtual void setSaveConnectionConfiguration(bool saveConnectConfig) const;
169 
171  virtual bool saveConnectConfiguration() const;
172 
174  virtual void setSaveIndexConfiguration(bool saveIndexConfig) const;
175 
177  virtual bool saveIndexConfiguration() const;
178 
180  virtual void setSaveProtocolConfiguration(bool saveProtocolConfig) const;
181 
183  virtual bool saveProtocolConfiguration() const;
184 
186  virtual void setListenWhenIdle(bool listen) const;
187 
189  virtual bool listenWhenIdle() const;
190 
192  virtual bool staticDROnPause() const;
193 
195  virtual void setStaticDROnPause(bool staticDRAlgorithm) const;
196 
198  DtLgrPacketFilter* filter(int index);
200  const DtLgrPacketFilter* filter(int index) const;
202 
204  virtual const DtLgrEntityTracker* entityTracker() const;
205 
207  virtual void addTemporaryTrackedEntity(const DtString& name) const;
208 
210  virtual bool connectionSettingsMatchInputFile( DtString& filename);
211 
213  virtual void useRecommendedSettings();
214 
216  virtual EntityTrackerUpdateId entityTrackerUpdateId() const;
217 
218  public:
219 
221  DtValueSignal<int> filterCountChangedSignal;
222 
224  DtValueSignal<bool> connectedStatusChangedSignal;
225 
227  DtValueSignal<bool> unableToConnectSignal;
228 
230  DtValueSignal<bool> activityChangedSignal;
231 
233  DtValueSignal<bool> crippleGuiChangedSignal;
234 
235  protected:
236 
239  void connectResponseHandlers();
240 
243  virtual void connectResponseHandler(DtLgrCommandId,
244  void (DtLgrSimInterface::*)(DtResponse));
245 
247 
248  void updatedEntityTracker(DtResponse response);
249  void connected(DtResponse);
250  void disconnected(DtResponse);
251  void unableToConnect(DtResponse);
252  void lostConnection(DtResponse);
253  void filterAdded(DtResponse);
254  void filterRemoved(DtResponse);
255  void filterModified(DtResponse);
256  void remoteControlsChanged(DtResponse);
257  void activityChanged(DtResponse);
258  void scaleAttributesChanged(DtResponse);
259  void remoteControlIdChanged(DtResponse);
260  void backChannelConnectionChanged(DtResponse);
261  void saveConnectConfigurationChanged(DtResponse response);
262  void saveIndexConfigurationChanged(DtResponse response);
263  void saveProtocolConfigurationChanged(DtResponse response);
264  void listenWhenIdleChanged(DtResponse response);
265  void staticDROnPauseChanged(DtResponse response);
267 
268 
269  protected:
270  bool myConnectedFlag;
271  bool myFailedConnectFlag;
272  bool myActivityFlag;
273  bool myRecordRemoteControls;
274  bool myAllowAllRemoteControls;
275  bool myAllowRemoteDelete;
276  bool mySendResponses;
277  bool myCrippleGui;
278  bool myUseLegacyPdu;
279  bool myUseSimChannel;
280  bool myUseBackChannel;
281  bool mySaveConnectConfiguration;
282  bool mySaveIndexConfiguration;
283  bool mySaveProtocolConfiguration;
284  bool myListenWhenIdle;
285  bool myStaticDROnPause;
286  DtString myBackChannelAddress;
287  DtString myBackChannelInterface;
288  int myBackChannelPort;
289  DtTime myConnectSendInterval;
290  DtTime myHeartbeatSendInterval;
291 
292  bool myScaleAttributes;
293  int myFilterCount;
294  DtString myDumpFilename;
295  typedef std::list<DtLgrPacketFilter*> FilterTypeList;
296  FilterTypeList myFilterList;
297  DtLgrEntityTracker* myEntityTracker;
298  int myEntityTrackerUpdateId;
299  int myRemoteControlId;
300  };
301 
302 }
303 
304 #endif
int EntityTrackerUpdateId
Definition: lgrSimInterface.h:215
The class responsible for interfacing with the simulation in a protocol independent manner...
Definition: lgrSimInterface.h:34
#define DT_PURE_VIRTUAL_CTR(CLASS_NAME, ARG_TYPES_LIST)
Declare a pure virtual constructor.
Definition: virtualConstructor.h:138
Contains MAKLogger::DtSlot and MAKLogger::DtFunctionSlot and MAKLogger::DtMemberSlot and MAKLogger::S...
The base class for command interface which allows an interface to send and receive commands...
Definition: lgrInterface.h:33
The abstract interface for the class responsible for controlling the simulation.
Definition: lgrSimDriver.h:37
DtLgrSimCommandFactory Factory
The factory type of this object.
Definition: lgrSimInterface.h:39
std::list< DtLgrPacketFilter * > FilterTypeList
Definition: lgrSimInterface.h:295
DtBoost::shared_ptr< const DtCommand > DtResponse
Definition: lgrCommand.h:174
Contains DT_VIRTUAL_CTR DT_VIRTUAL_CTR_DEFAULTS DT_VIRTUAL_COPY_ASSIGN DT_VIRTUAL_BASE_CTR DT_PURE_VI...
Base interface class for packet filters.
Definition: lgrPacketFilter.h:25
Contains MAKLogger::DtLgrEntityTracker class.
#define DT_DLL_LGRCORE
Definition: lgrCore.h:19
Indexes packets in a file.
Definition: lgrEntityTracker.h:32
unsigned char DtLgrProtocolId
Definition: lgrCommand.h:24
DtLogger provides the core system structure and controls the execution model for the underlying objec...
Definition: logger.h:35
The factory responsible for creating simulation commands.
Definition: lgrSimCommandFactory.h:21
short DtLgrCommandId
Definition: lgrCommand.h:25
Contains MAKLogger::DtCommandInterface class.
Contains lgrCore library definitions.
Definition: signalSlot.h:163

Document ID: Generated on Fri May 31 15:45:35 EDT 2024 from SVN revision 266500
Copyright © 2024 MAK Technologies. All Rights Reserved (www.mak.com)