VR-Forces 5.0.3 Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
vrfLegionDriver.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2020 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
6 #pragma once
7 
8 #include <vrfLegion/vrfLegion.h>
11 #include <vrfutil/backend.h>
12 #include <boost/signals2.hpp>
13 #include <vrfMsgTransport/events.h>
16 #include <legionDataStore/dataTypes.h>
17 
19 class DtDetonationInteractionData;
20 
21 namespace makVrv
22 {
23  class DtAggregateEchelonManager;
24  class DtElementIDHierarchyNode;
25  class DtSceneEnvironmentalsControllerObjectAgent;
26 }
27 
28 namespace makVrf
29 {
30  class DtNetworkMessageInterfaceHandlerAgent;
31  class DtNetworkMessageInterface;
32  class DtSimDataProcessorManager;
33  class DtVantageToLegionIdMapper;
34  class DtStateDataManager;
35  class DtLegionNetworkInterface;
36  class DtStateData;
37  class DtVrfConnectionHelper;
38  class DtStateData;
39 
40  namespace vrfLegion
41  {
43  {
44  public:
45  DtVrfLegionDriver(makVrv::DtAgentManager& agentManager, const std::string& uniqueName, const std::string& className = "DtLegionDriver");
46  virtual ~DtVrfLegionDriver();
47 
48  static void simulationStatusChangedCallback(DtSimulationStatus, void* usr);
49  virtual void processSimulationStatusChanged(DtSimulationStatus);
50 
51  virtual void sendDetonation(const DtDetonationInteractionData* d);
52 
53  boost::signals2::signal<void ()> signal_onFirstTickDriverInitialization;
54  boost::signals2::signal<void ()> signal_driverStarted;
55  boost::signals2::signal<void (DtSimulationStatus)> signal_simulationStatusChanged;
56  boost::signals2::signal<void ()> signal_driverAboutToBeSetUp;
57  boost::signals2::signal<void ()> signal_connectionSetUp;
58  boost::signals2::signal<void ()> signal_databaseSetUp;
59  boost::signals2::signal<void ()> signal_connectionAboutToBeCleanedUp;
60 
61  protected:
62  virtual void remoteControllerInit(DtVrfConnectionHelper*);
63  virtual bool onStart();
64  virtual void onSetupExerciseConnection();
65  virtual void onDatabaseCreated();
66  virtual void onCleanupExerciseConnection();
67  virtual makVrv::DtConnection* createConnection();
68  virtual bool onTick();
69 
70  virtual void slot_elementCreated(makVrv::DtUniqueID uid, Legion::UInt64 lid, bool created);
71  virtual void slot_allElementsDestroyed();
72 
73  virtual void realizeConfiguration(const makVrv::DtConfiguration& config);
74 
75  virtual void slot_preConnectionTick();
76  virtual void slot_postConnectionTick();
77 
78  virtual void slot_hierarchyItemModified(makVrv::DtElementIDHierarchyNode* node);
79 
80  virtual void stateDataChanged(const DtStateData*, bool created);
81  virtual void slot_stateDataAdded(DtStateData*);
82  virtual void slot_stateDataRemoved(const DtStateData*);
83  virtual void slot_coordinateSystemChanged();
84 
85  virtual void setDiscoverBackgroundEntities(bool);
87  {
88  return myDiscoverBackgroundEntities;
89  }
90 
92  {
93  return myConnectionHelper;
94  }
95 
96  virtual double simTimeFromBackend(double& dT);
97 
98  virtual void setTimeOfDayAdvancementSpeed(float value);
99  virtual void setUseGlobalTimeZone(bool b);
100  virtual void setDateAndTimeOfDay(time_t dtod);
101 
102  virtual void updateSimulationDateTime();
103  virtual void updateGlobalEnvironment();
104 
105  protected:
111  std::string myHostAddressString;
113 
114  int mySiteId;
115  int myAppId;
119 
122 
125 
126  unsigned int myIsBackgroundEntity;
128 
129  makVrv::DtSceneEnvironmentalsControllerObjectAgent* myWeatherControllerAgent;
131  };
132  }
133 }
DtVrfConnectionHelper * myConnectionHelper
Definition: vrfLegionDriver.h:107
The base class for protocol specific VRLink Simulations.
Definition: DtConnection.h:43
int myFileTransporterReceivePort
Definition: vrfLegionDriver.h:116
makVrv::DtSceneEnvironmentalsControllerObjectAgent * myWeatherControllerAgent
Definition: vrfLegionDriver.h:129
DtSimulationStatus
Definition: backend.h:26
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
bool myDiscoverBackgroundEntities
Definition: vrfLegionDriver.h:124
int myNextEventId
Definition: vrfLegionDriver.h:118
boost::signals2::signal< void()> signal_connectionAboutToBeCleanedUp
Definition: vrfLegionDriver.h:59
int mySessionId
Definition: vrfLegionDriver.h:117
makVrv::DtAggregateEchelonManager * myEchelonHierarchy
Definition: vrfLegionDriver.h:120
DtLegionNetworkInterface * myLegionNetworkInterface
Definition: vrfLegionDriver.h:108
double myLastSimTime
Definition: vrfLegionDriver.h:121
bool myDisableRemoteDiscovery
Definition: vrfLegionDriver.h:123
unsigned int myIsBackgroundEntity
Definition: vrfLegionDriver.h:126
The class that will be used to keep track of echelon hierarchy. (This was moved from vrvVrl 2022) ...
Definition: DtAggregateEchelonManager.h:32
bool myNeedsFirstTickInitialization
Definition: vrfLegionDriver.h:110
The main class for the remote control interface to VR-Forces. Instantiating this class allows the sen...
Definition: vrfRemoteController.h:201
The overall structure of the DtStateData mechanism is: The DtStateData contains a list of double buff...
Definition: stateData.h:336
boost::signals2::signal< void()> signal_onFirstTickDriverInitialization
Definition: vrfLegionDriver.h:53
class DtLegionNetworkInterface:
Definition: legionNetworkInterface.h:53
boost::signals2::signal< void()> signal_driverAboutToBeSetUp
Definition: vrfLegionDriver.h:56
const DtStateData * myGlobalWeatherObject
Definition: vrfLegionDriver.h:130
Definition: vrfLegionDriver.h:42
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
The DtElementIDHierarchyNode class will contain information about an element, its children and its pa...
Definition: DtElementIDHierarchy.h:33
makVrv::DtSignalConnectionManager myConnectionManager
Definition: vrfLegionDriver.h:106
unsigned long long UInt64
Definition: stateDataTypes.h:17
#define DT_DLL_VRFLEGION
Definition: vrfLegion.h:18
std::string myHostAddressString
Definition: vrfLegionDriver.h:111
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
DtVrfConnectionHelper * connectionHelper() const
Definition: vrfLegionDriver.h:91
Contains makVrf::DtSharedNetworkSignaler class.
Base class to provide boost signal/slot management.
bool myConnected
Definition: vrfLegionDriver.h:109
boost::signals2::signal< void()> signal_driverStarted
Definition: vrfLegionDriver.h:54
The base implementation of a configuration.
Definition: DtConfiguration.h:24
int myAppId
Definition: vrfLegionDriver.h:115
boost::signals2::signal< void(DtSimulationStatus)> signal_simulationStatusChanged
Definition: vrfLegionDriver.h:55
std::string myReportedHostAddressString
Definition: vrfLegionDriver.h:112
boost::signals2::signal< void()> signal_databaseSetUp
Definition: vrfLegionDriver.h:58
Definition: DtLegionDriver.h:32
Contains makVrv::DtLegionDriver class.
int mySiteId
Definition: vrfLegionDriver.h:114
bool discoverBackgroundEntities() const
Definition: vrfLegionDriver.h:86
boost::signals2::signal< void()> signal_connectionSetUp
Definition: vrfLegionDriver.h:57
bool mySetupExerciseConnection
Definition: vrfLegionDriver.h:127

Document ID: Generated on Thu Jun 1 17:58:13 EDT 2023 from SVN revision 255404
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)