MAK Data Logger API Documentation for HLA
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
lgrDisSimManager.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 1992-2025 MAK Technologies, Inc
3 ** All rights reserved.
4 ******************************************************************************/
5 
9 
10 #ifndef lgrDisSimManager_H_
11 #define lgrDisSimManager_H_
12 
13 #if DtDIS
14 
15 #include <lgrSim/lgrSim.h>
18 #include <lgrUtil/absoluteTime.h>
19 #include <lgrCore/lgrConfigData.h>
20 
21 #include <vl/pduCallbackManager.h>
22 #include <map>
23 #include <set>
24 
25 class DtPdu;
26 class DtExerciseConn;
27 class DtExerciseConnInitializer;
28 class DtObjectPublisher;
29 enum DtPduKind;
30 
31 namespace MAKLogger
32 {
33 
34  class DtDisDescriptor;
35  class DtLgrPublisherInterface;
36  class DtLgrDisMessageState;
37  class DtLgrDisSimInput;
38  class DtLgrDisSimOutput;
39  class DtLgrFileOutput;
40  class DtLgrDisEntityTypeManager;
41  class DtLgrDisSimDriver;
42 
45  class DT_DLL_LGRSIM DtLgrDisSimulationManager : public DtLgrBaseSimManager
46  {
47  public:
48 
50  typedef DtLgrPublisherInterface* (*LgrPublisherCreator)\
51  (DtLgrDisSimulationManager&,const DtPdu& pdu);
52 
53  public:
54 
55  DT_VIRTUAL_CTR(DtLgrDisSimulationManager,(DtLogger& logger, DtLgrDisSimDriver& simDriver))
56 
57  virtual ~DtLgrDisSimulationManager();
58 
60  virtual void tick();
61 
63  virtual bool isConnected() const;
64 
66  virtual bool isConnectionOk() const;
67 
70  virtual bool connect(DtExerciseConnInitializer& initializer, DtString& failureReason);
71 
73  virtual void disconnect();
74 
76  virtual DtLgrDisSimDriver& simDriver();
77 
79  virtual const DtLgrDisSimDriver& simDriver() const;
80 
82  virtual const DtLgrSimInput* input() const;
83  virtual DtLgrSimInput* input();
84 
86  virtual const DtLgrSimOutput* output() const;
87  virtual DtLgrSimOutput* output();
88 
90  virtual const DtMessageState* state() const;
91  virtual DtMessageState* state();
92 
94  virtual DtMessageState* createState() const;
95 
97  virtual DtLgrFileInput* openFileForInput(const DtString& filename) const;
98 
100  virtual DtLgrFileOutput* openFileForCopying(const DtString& filename,
101  const DtLgrFileInput* input) const;
102 
104  virtual DtLgrFileOutput* openFileForOutput(const DtString& filename,
105  const DtString& description) const;
106 
108  virtual DtLgrFileInput* openPartialFileForCopying(
109  const DtLgrFileOutput* output , DtFilePosition firstPacket,
110  DtFilePosition lastPacket) const;
111 
112  virtual void addReceivePduCallback(DtPduCallbackFcn receivePduCb,void* usr);
113  virtual void removeReceivePduCallback(DtPduCallbackFcn receivePduCb,void* usr);
114 
116  virtual void sendPdu(DtPdu& pdu);
117 
119  virtual void registerPublisher(DtPduKind,LgrPublisherCreator);
120 
122  virtual void removePublisherCreator(DtPduKind);
123 
125  virtual bool pduNeedsPublisher(DtPduKind pduKind) const;
126 
128  virtual DtLgrPublisherInterface* createPublisher(const DtPdu& pdu);
129 
131  virtual DtRelativeTime heartbeatRate() const;
132 
134  virtual void setHeartbeatRate(DtRelativeTime time);
135 
137  virtual DtRelativeTime timeoutRate() const;
138 
140  virtual void setTimeoutRate(DtRelativeTime time);
141 
143  virtual bool scaleArticulatedParts() const;
144 
146  static DtVector scaleVector(const DtVector& vec,double scaleValue);
147 
149  virtual void setDisDescription(DtDisDescriptor* desc);
150 
152  virtual void setDrainInputMaxTime(double maxTime);
153 
155  virtual double drainInputMaxTime() const;
156 
158  virtual void setNumPdusToReadPerTimeCheck(int number);
159 
161  virtual int numPdusToReadPerTimeCheck() const;
162 
164  virtual const DtDisDescriptor* disDescription() const;
165  virtual DtDisDescriptor* disDescription();
166 
168  virtual void setEntityTypeManager(DtLgrDisEntityTypeManager* mgr);
169 
171  virtual DtLgrDisEntityTypeManager* entityTypeManager();
172  virtual const DtLgrDisEntityTypeManager* entityTypeManager() const;
173 
174  virtual void setConfigurationFileName(const DtString& filename);
175 
176  protected:
177 
178  static DtLgrPublisherInterface* createEntityStatePublisher(
179  DtLgrDisSimulationManager&, const DtPdu& pdu);
180 
181  static DtLgrPublisherInterface* createDesignatorPublisher(
182  DtLgrDisSimulationManager&, const DtPdu& pdu);
183 
184  static DtLgrPublisherInterface* createAggregateStatePublisher(
185  DtLgrDisSimulationManager&,const DtPdu& pdu);
186 
187  static DtLgrPublisherInterface* createEnvironmentalProcessPublisher(
188  DtLgrDisSimulationManager&,const DtPdu& pdu);
189 
190  static DtLgrPublisherInterface* createTransmitterPublisher(
191  DtLgrDisSimulationManager&,const DtPdu& pdu);
192 
193  static DtLgrPublisherInterface* createReceiverPublisher(
194  DtLgrDisSimulationManager&,const DtPdu& pdu);
195 
196  static DtLgrPublisherInterface* createGriddedDataPublisher(
197  DtLgrDisSimulationManager&,const DtPdu& pdu);
198 
199  typedef std::map<DtPduKind,LgrPublisherCreator> DtPublisherFunctionMap;
200 
201  typedef std::set<DtPduKind> DtPduKindSet;
202 
203  DtPduKindSet myPublishedKinds;
204  DtPduKindSet myMessageStateKinds;
205  DtPublisherFunctionMap myPublisherMap;
206  DtLgrDisMessageState* myMessageState;
207  DtLgrDisSimInput* myInput;
208  DtLgrDisSimOutput* myOutput;
209  DtDisDescriptor* myDisDescriptor;
210  DtLgrDisEntityTypeManager* myEntityTypeManager;
211  DtLgrDisSimDriver& mySimDriver;
212 
213  DtRelativeTime myHeartbeatRate;
214  DtRelativeTime myTimeoutRate;
215  bool myScaleArticulatedpartsFlag;
216  double myDrainInputMaxTime;
217  int myNumPdusToReadPerTimeCheck;
218 
219  DtLgrConfigData myConfigData;
220  };
221 
222 }
223 
224 #endif
225 #endif
Defines IMPORT/EXPORT macros for lgrSim library.
#define DT_DLL_LGRSIM
Definition: lgrSim.h:21
Contains MAKLogger::DtLgrBaseSimManager class.
DtInt64 DtFilePosition
The position in a file, stored as a 64bit unsigned integer.
Definition: filePosition.h:18
#define DT_VIRTUAL_CTR(CLASS_NAME, ARG_TYPES_LIST)
Declare a Virtual Constructor Create using DT_VIRTUAL_CTR(CLASS_NAME,ARG_TYPES_LIST) Where CLASS_NAME...
Definition: virtualConstructor.h:34
Contains DT_VIRTUAL_CTR DT_VIRTUAL_CTR_DEFAULTS DT_VIRTUAL_COPY_ASSIGN DT_VIRTUAL_BASE_CTR DT_PURE_VI...
Contains MAKLogger::DtAbsoluteTime and MAKLogger::DtRelativeTime classes.
Contains MAKLogger::DtLgrConfigData class.

Document ID: Generated on Thu Dec 18 15:35:09 EST 2025 from SVN revision 282494
Copyright © 2024 MAK Technologies. All Rights Reserved (www.mak.com)