VR-Forces 5.0.2 Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
vrfDriver.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2015 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
8 
10 
11 #pragma once
12 
16 #include <vrvVrl/DtConnection.h>
19 
21 
22 #include <vlpi/entityType.h>
23 #include <matrix/vlVector.h>
24 
26 #include <vrfutil/scenario.h>
27 
28 #if DtHLA
30 #endif
31 #include "vrfutil/rwColor.h"
32 
33 
34 #if DtHLA
35 namespace makVrfVrlinkExtToolkit
36 {
37  class DtReflectedExtendedAttributesObjectList;
38 }
39 #endif
40 
41 namespace makVrv
42 {
43  class DtElement;
44  class DtEntityElement;
45 
46  namespace DT_PROTOCOL_NAMESPACE
47  {
49  class DtVrlinkAggregateElement;
50  class DtSensorFieldOfViewSimDataProcessor;
51  class DtVrlinkLaserDesignatorStateListener;
52  }
53 }
54 
57 
58 namespace makVrf
59 {
60  class DtSimDataProcessorManager;
61  class DtVrlinkVrfRemoteController;
62  class DtRemoteLoggerController;
63  class DtVrlinkNetworkInterface;
64  class DtRadioProcessor;
65  class DtVrfConnectionHelper;
66  struct DtSimpleTypedDictionary;
67  class DtNetworkMessageInterface;
68  class DtStateDataManager;
69 
70  namespace VRF_PROTOCOL_NAMESPACE
71  {
72  class DtVrlinkVantageToLegionIdMapper;
73  class DtVrfCloudLayerStateProcessor;
74  class DtVrfAggregateObjectDataStateProcessor;
75  class DtOrbatSimDataProcessor;
76  class DtVrfFogOfWarHandler;
77  class DtVrfEmbarkationProcessor;
78  class DtVrfWeatherProcessor;
79  class DtVrfCloudLayerProcessor;
80  class DtVrfVrlinkGuiOrbatManager;
81  class DtVrlinkVantageLegionToIdMapper;
82 
85  {
86  public:
87  DtVrfDriver(makVrv::DtAgentManager& agentManager, const std::string& uniqueName);
88 
89  virtual ~DtVrfDriver();
90 
91  public:
92  virtual bool onStart();
93 
94  public:
95  virtual DtVrlinkVrfRemoteController* vrfRemoteController() const;
96  virtual DtVrfRemoteController* remoteController() const;
97  virtual DtCommunicationManager* communicationManager() const;
98  virtual DtVrlinkVantageToLegionIdMapper* vrfVantageToLegionIdMapper() const;
99 
101  virtual void realizeConfiguration(const makVrv::DtConfiguration& config);
102 
104  virtual void sendLoggerSetFilename(std::string filename);
105 
107  virtual void sendLoggerRecordMessage();
108 
110  virtual void sendLoggerStopMessage();
111 
113  virtual void requestOrbatList();
114 
116  virtual void clearOrbatList();
117 
120  virtual void receivedNetworkMessage(DtNetworkMessageInterface* iface);
121 
123  virtual void executeGesture(std::string gesture, std::vector<makVrv::DtUniqueID>);
124 
126  virtual void executeAnimation(std::string gesture, std::vector<makVrv::DtUniqueID>);
127  virtual void executeAnimations(std::map<makVrv::DtUniqueID, std::string>);
128 
130  virtual void setIconColor(DtRwColor iconColor, std::vector<makVrv::DtUniqueID>);
131 
133  virtual void blockNetworkAnimationChange(std::vector<makVrv::DtUniqueID>, bool, double);
134  virtual void blockNetworkGestureChange(std::vector<makVrv::DtUniqueID>, bool);
135 
137  virtual void startFreezeScenario(DtSimulationAddress, bool sendStart);
138 
140  virtual void sendSensorFieldOfViewControl(const DtSensorFieldOfViewControlInteractionData* d);
141 
143  virtual void sendDetonation(const DtDetonationInteractionData* d);
144 
149  virtual DtSimpleTypedDictionary& extendedStateFor(makVrv::DtUniqueID id, bool forceUpdate = true);
150 
152  virtual void queueConnectionFunction(const boost::function<void ()>& function);
153 
154  DtStateDataManager* stateDataManager() const;
155 
157  {
158  return myConnectionHelper;
159  }
160 
161  DtVrfCloudLayerStateProcessor* cloudLayerDataProcessor()
162  {
163  return myCloudLayerDataProcessor;
164  }
165 
167  {
168  return myOrbatDataProcessor;
169  }
170 
172  {
173  return myVrlinkNetworkInterface;
174  }
175 
177  {
178  return myOrbatManager;
179  }
180 
181  void setUseThreadFlag(bool b)
182  {
183  myUseThreadFlag = b;
184  }
185 
186  bool connected() const
187  {
188  return myConnected;
189  }
190 
191  int sessionId() const
192  {
193  return mySessionId;
194  }
195 
196  virtual bool onStop();
197 
198  virtual bool onTick();
199 
201  boost::signals2::signal<void ()> signal_connectionSetUp;
202  boost::signals2::signal<void ()> signal_connectionCleanedUp;
203  boost::signals2::signal<void ()> signal_connectionAboutToBeCleanedUp;
204  boost::signals2::signal<void ()> signal_onFirstTickDriverInitialization;
205  boost::signals2::signal<void ()> signal_driverStarted;
206  boost::signals2::signal<void ()> signal_driverAboutToBeSetUp;
207 
208  public:
210  const std::string& nonVrfObjectsUseUUIDScheme() const;
211 
212  protected:
213  virtual void remoteControllerInit();
214 
215  virtual bool createExerciseConnection();
216  virtual void onSetupExerciseConnection();
217  virtual void onCleanupExerciseConnection();
218 
219  virtual void connectionConnected();
220 
222  virtual void elementAttributeChangeRequested(
223  makVrv::DtUniqueID id, makVrv::DtUniqueID parentId, DtBoost::shared_ptr<const makVrv::DtElementAttribute> atr );
224 
225  makVrv::DtElement* findElementWithId(makVrv::DtUniqueID id) const;
226 
227  virtual makVrv::DtConnection* createConnection();
228 
230  virtual void slot_entityElementCreated(makVrv::DtEntityElement* e);
231 
232  virtual void slot_postConnectionTick();
233  virtual void slot_preConnectionTick();
234  virtual void slot_coordinateSystemChanged();
235 
237  virtual void visualsLoaded();
238 
239  virtual void slot_parameterDatabaseInitialized(bool);
240 
242  virtual void logGraphics();
243 
244  virtual void setVisibleForElement(makVrv::DtElement*, bool flag, int context) const;
245 
246  virtual void rediscoverListeners();
248 
249  protected:
252 
253  DtVrfCloudLayerStateProcessor* myCloudLayerDataProcessor;
254 
256 
258 
260 
262 
264  std::string myHostAddressString;
268 
271 
273  DtVrfCloudLayerProcessor* myVrfCloudLayerProcessor;
274 
275  typedef std::map<unsigned int, bool> ContextMap;
276  typedef std::map<makVrv::DtUniqueID, ContextMap> ShowHideContextMap;
277 
280 
284 
285  DtExerciseConn* myExerciseConnection;
286 
287 #if DtHLA
290 #endif
291 
292 
294 
295 #ifdef DtDIS
296  int mySiteId;
298 #endif
299 
301  };
302 
303  inline const std::string& DtVrfDriver::nonVrfObjectsUseUUIDScheme() const
304  {
306  }
307  }
308 }
int mySiteId
Definition: vrfDriver.h:296
The base class for protocol specific VRLink Simulations.
Definition: DtConnection.h:43
DtVrfConnectionHelper * connectionHelper() const
Definition: vrfDriver.h:156
makVrv::DtSignalConnectionManager myConnectionManager
Definition: vrfDriver.h:270
#define VRF_PROTOCOL_EXPORT
Definition: vrfProtocol.h:24
Helper code for connectors. Does not exist in it&#39;s own project but is included by all projects that u...
Definition: vrfConnectionHelper.h:124
Definition: vrfWeatherProcessor.h:30
Definition: networkMessageInterface.h:28
bool myConnected
Definition: vrfDriver.h:278
boost::signals2::signal< void()> signal_driverStarted
Definition: vrfDriver.h:205
int sessionId() const
Definition: vrfDriver.h:191
bool myDisableRequestUpdatesFlag
Definition: vrfDriver.h:288
std::map< makVrv::DtUniqueID, ContextMap > ShowHideContextMap
Definition: vrfDriver.h:276
void setUseThreadFlag(bool b)
Definition: vrfDriver.h:181
DtVrfWeatherProcessor * myVrfWeatherProcessor
Definition: vrfDriver.h:272
bool myNeedsFirstTickInitialization
Definition: vrfDriver.h:293
std::string myNonVrfObjectsUseUUIDScheme
Definition: vrfDriver.h:282
DtRemoteLoggerController * myLoggerControl
Definition: vrfDriver.h:251
DtVrfCloudLayerProcessor * myVrfCloudLayerProcessor
Definition: vrfDriver.h:273
std::string myLocalSettingsDesignator
Definition: vrfDriver.h:279
DtVrfCloudLayerStateProcessor * cloudLayerDataProcessor()
Definition: vrfDriver.h:161
boost::signals2::signal< void()> signal_connectionAboutToBeCleanedUp
Definition: vrfDriver.h:203
unsigned myNumberOfRemoteNetworkThreads
Definition: vrfDriver.h:283
std::string myHostAddressString
Definition: vrfDriver.h:264
The DtElement class implements the common behavior of simulation based elements added to the scene...
Definition: DtElement.h:41
DtVrlinkNetworkInterface * vrlinkNetworkInterface()
Definition: vrfDriver.h:171
makVrv::DtAgentManager & myAgentManager
Definition: vrfDriver.h:255
The main class for the remote control interface to VR-Forces. Instantiating this class allows the sen...
Definition: vrfRemoteController.h:201
int myFileTransporterReceivePort
Definition: vrfDriver.h:281
Definition: remoteLoggerController.h:27
boost::signals2::signal< void()> signal_connectionCleanedUp
Definition: vrfDriver.h:202
Reader-Writer color specified by red, green, blue components.
Definition: rwColor.h:19
#define DT_PROTOCOL_NAMESPACE
Contains DLL export macros.
Definition: vrfDis.h:17
Definition: simpleTypedDictionary.h:36
Contains makVrv::DtSharedModelSetSettings class.
DtVrfVrlinkGuiOrbatManager * myOrbatManager
Definition: vrfDriver.h:259
#define VRF_PROTOCOL_NAMESPACE
Definition: vrfDis.h:18
The DtCommunicationManager class is a convenience class that will create both the DtNetworkInterfaceM...
Definition: communicationManager.h:50
DtExerciseConn * myExerciseConnection
Definition: vrfDriver.h:285
Contains makVrv::DtConnection class.
DtVrfEmbarkationProcessor * myVrfEmbarkationProcessor
Definition: vrfDriver.h:269
DtVrfFogOfWarHandler * myFogOfWarHandler
Definition: vrfDriver.h:267
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
The protocol specific processor for orbat sim data.
Definition: orbatSimDataProcessor.h:49
bool myRemoteDiscoveryDisabled
Definition: vrfDriver.h:300
The DtSensorFieldOfViewControlInteractionContents provides the data contents of a SensorFieldOfViewCo...
Definition: sensorFieldOfViewControlInteractionData.h:25
DtVrfConnectionHelper * myConnectionHelper
Definition: vrfDriver.h:250
std::string myReportedHostAddressString
Definition: vrfDriver.h:265
The DtDetonationInteractionData provides the data contents of a DIS DetonationInteraction.
Definition: detonationInteractionData.h:25
The DtAgentManager manages the distributed scene object framework. This includes the objects and upda...
Definition: DtAgentManager.h:38
Definition: vrfFogOfWarHandler.h:82
bool myRtiError
Definition: vrfDriver.h:263
DtVrlinkNetworkInterface * myVrlinkNetworkInterface
Definition: vrfDriver.h:257
Contains makVrf::DtSharedNetworkSignaler class.
A single entity element. An entity element may be visualized using multiple visualizer sets one per m...
Definition: DtEntityElement.h:32
boost::signals2::signal< void()> signal_onFirstTickDriverInitialization
Definition: vrfDriver.h:204
DtVrfCloudLayerStateProcessor * myCloudLayerDataProcessor
Definition: vrfDriver.h:253
Base class to provide boost signal/slot management.
DtVrfVrlinkGuiOrbatManager * orbatManager()
Definition: vrfDriver.h:176
boost::signals2::signal< void()> signal_driverAboutToBeSetUp
Definition: vrfDriver.h:206
int mySessionId
Definition: vrfDriver.h:266
Contains Extended DI-Guy Object net types.
The protocol specific processor for entity sim data.
Definition: vrfEmbarkationProcessor.h:39
The base implementation of a configuration.
Definition: DtConfiguration.h:24
boost::signals2::signal< void()> signal_connectionSetUp
Signals sent on connection status.
Definition: vrfDriver.h:201
int myAppNumber
Definition: vrfDriver.h:297
const std::string & nonVrfObjectsUseUUIDScheme() const
Accessor for non VRF UUID scheme.
Definition: vrfDriver.h:303
bool connected() const
Definition: vrfDriver.h:186
DtOrbatSimDataProcessor * orbatDataProcessor()
Definition: vrfDriver.h:166
DtOrbatSimDataProcessor * myOrbatDataProcessor
Definition: vrfDriver.h:261
The Driver for DIS.
Definition: vrfDriver.h:84
bool myRequestWhenInitializedFlag
Definition: vrfDriver.h:289
std::map< int, bool > ModelSetVisualizedMap
Definition: DtSharedModelSetSettings.h:27
std::map< unsigned int, bool > ContextMap
Definition: vrfDriver.h:275
This class holds the state data that represents each simulation object in the system.
Definition: stateDataManager.h:71

Document ID: Generated on Sun Dec 4 20:22:03 EST 2022 from SVN revision 249613
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)