VR-Forces 4.8 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
laserDesignatorSimDataProcessor.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2018 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
9 
10 #pragma once
11 
13 
15 #include <vl/globalObjectDesignator.h>
20 #include <vlutil/vlPerformanceStats.h>
22 
23 namespace makVrv
24 {
25  class DtSimEntryObjectAgent;
26 
27  namespace DT_PROTOCOL_NAMESPACE
28  {
29  class DtVrlinkConnection;
31  class DtVrlinkAggregateStateListener;
32  }
33 }
34 
35 namespace makVrf
36 {
37  class DtLaserDesignatorStateObjectAgent;
38 
39  namespace VRF_PROTOCOL_NAMESPACE
40  {
43  {
44  public:
47 
50 
53 
56 
58  virtual void postDrainInput();
59 
61  virtual void setObjectUpdateRate(makVrv::DtUniqueID uniqueId, makVrv::DtSimEntryUpdater::UpdateRate rate);
62 
64  virtual void forceObjectUpdate(makVrv::DtUniqueID uniqueId);
65 
67  virtual void laserDesignatorDiscovered(makVrv::DT_PROTOCOL_NAMESPACE::DtVrlinkLaserDesignatorStateListener* listener);
68 
70  virtual void laserDesignatorToBeDeleted(makVrv::DT_PROTOCOL_NAMESPACE::DtVrlinkLaserDesignatorStateListener* listener);
71 
72  virtual void entityToBeDeleted(makVrv::DT_PROTOCOL_NAMESPACE::DtVrlinkEntityStateListener& listener);
73  virtual void entityDiscovered(makVrv::DT_PROTOCOL_NAMESPACE::DtVrlinkEntityStateListener& listener);
74 
75  virtual void aggregateToBeDeleted(makVrv::DT_PROTOCOL_NAMESPACE::DtVrlinkAggregateStateListener& listener);
76  virtual void aggregateDiscovered(makVrv::DT_PROTOCOL_NAMESPACE::DtVrlinkAggregateStateListener& listener);
77 
79  virtual bool createAndSendState(makVrv::DtElementID entity,
80  DtLaserDesignatorStateObjectAgent& objectDriver, DtLaserDesignatorState* state = 0);
82  DtLaserDesignatorState& state);
83 
85  boost::signals2::signal<void (makVrv::DtUniqueID, DtLaserDesignatorState)> signal_stateUpdated;
86  boost::signals2::signal<void (makVrv::DtUniqueID, DtLaserDesignatorState)> signal_stateAdded;
87 
88  protected:
89 
90  static void postDrainInput(void* usr);
91 
92  virtual makVrv::DtUniqueID entityIdForLaser(const DtGlobalObjectDesignator&) const;
93  virtual std::string entityTypeForLaser(const DtGlobalObjectDesignator&) const;
94 
95  virtual void slot_postUpdateCallback(makVrv::DT_PROTOCOL_NAMESPACE::DtVrlinkLaserDesignatorStateListener&);
96 
97  protected:
98 
99  //A Listener and a driver which will be updated with it.
101  {
102  public:
103 
105  DtLaserDesignatorStateObjectAgent& driver, DtLaserDesignatorSimDataProcessor& processor);
106 
108 
110 
111  //Are the updaters equal
112  bool operator==(const LaserDesignatorStateUpdater& orig) const;
113 
115  void update(double timeT);
116 
117  protected:
118 
120  DtLaserDesignatorStateObjectAgent* myObjectAgent;
122  };
123 
124  typedef std::set<makVrv::DtUniqueID> LaserDesignatorIdList;
125 
127  {
129 
132  DtLaserDesignatorStateObjectAgent* myAgent;
135  };
136 
137  typedef std::map<makVrv::DtUniqueID, LaserDesignatorSimDataInstance > LaserDesignatorAgentMap;
138 
140  typedef std::map<makVrv::DtSimEntryUpdater::UpdateRate,LaserDesignatorUpdaterGroup>
142 
143  protected:
145 
148  DtTimedSection myTimer;
149  makVrv::DtSimEntryObjectAgent* mySimEntryAgent;
150 
154 
155  typedef std::map<makVrv::DtUniqueID, DtLaserDesignatorState> LaserDesignatorStates;
157 
158  typedef std::map<DtGlobalObjectDesignator, makVrv::DT_PROTOCOL_NAMESPACE::DtVrlinkLaserDesignatorStateListener*> AwaitingMap;
160  };
161 
163  {
164  public:
167 
169 
172  static void registerInstance(makVrv::DT_PROTOCOL_NAMESPACE::DtVrlinkConnection& conn,
174 
176  };
177  }
178 }
AwaitingMap myAwaitingEntityDiscovery
Definition: laserDesignatorSimDataProcessor.h:159
boost::signals2::signal< void(makVrv::DtUniqueID, DtLaserDesignatorState)> signal_stateAdded
Definition: laserDesignatorSimDataProcessor.h:86
LaserDesignatorAgentMap myLaserDesignatorAgents
Definition: laserDesignatorSimDataProcessor.h:151
Contains makVrv::DtSimDataProcessorInterface class.
Virtual base class.
Definition: DtVirtualBaseClass.h:22
Contains the DtLaserDesignatorExistenceListener class declaration.
#define VRF_PROTOCOL_EXPORT
Definition: vrfProtocol.h:24
The protocol specific processor for laserDesignator sim data.
Definition: laserDesignatorSimDataProcessor.h:42
std::map< makVrv::DtUniqueID, DtLaserDesignatorState > LaserDesignatorStates
Definition: laserDesignatorSimDataProcessor.h:155
UpdateRate
Definition: DtSimEntryUpdater.h:34
makVrv::DtElementID myEntity
Definition: laserDesignatorSimDataProcessor.h:119
makVrv::DtUniqueID myHostId
Definition: laserDesignatorSimDataProcessor.h:133
boost::signals2::signal< void(makVrv::DtUniqueID, DtLaserDesignatorState)> signal_stateUpdated
The ID is the ID of the listener of the laser designator.
Definition: laserDesignatorSimDataProcessor.h:85
DT_DLL_terrainCS bool operator==(const DtDegMinSec &lhs, const DtDegMinSec &rhs)
LaserDesignatorIdList myForceUpdateList
Definition: laserDesignatorSimDataProcessor.h:153
DtLaserDesignatorSimDataProcessor * myProcessor
Definition: laserDesignatorSimDataProcessor.h:121
DtTimedSection myTimer
Definition: laserDesignatorSimDataProcessor.h:148
DtUniqueID DtElementID
The ElementID is a specific type of unique ID used to represent VR-Vantage uniquely defined elements...
Definition: DtUniqueID.h:26
std::set< makVrv::DtUniqueID > LaserDesignatorIdList
Definition: laserDesignatorSimDataProcessor.h:124
makVrv::DT_PROTOCOL_NAMESPACE::DtVrlinkConnection & mySimulation
Definition: laserDesignatorSimDataProcessor.h:146
makVrv::DtSimEntryUpdater::UpdateRate myRate
Definition: laserDesignatorSimDataProcessor.h:134
#define VRF_PROTOCOL_NAMESPACE
Definition: vrfDis.h:18
makVrv::DtSignalConnectionManager myConnections
Definition: laserDesignatorSimDataProcessor.h:144
Definition: laserDesignatorSimDataProcessor.h:162
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:24
DtBalanacedUpdater updates updatee classes at a desired rate in a fair (each instance gets the same n...
Definition: DtBalancedUpdater.h:29
makVrv::DT_PROTOCOL_NAMESPACE::DtVrlinkLaserDesignatorStateListener * myListener
Definition: laserDesignatorSimDataProcessor.h:128
LaserDesignatorStates myLaserDesignatorStates
Definition: laserDesignatorSimDataProcessor.h:156
unsigned long long DtUniqueID
Definition: DtUniqueID.h:22
Methods a data processor needs to implement to be considered a data processor.
Definition: DtSimDataProcessorInterface.h:24
#define DT_PROTOCOL_NAMESPACE
Make VR-Vantage VRLink code export with library #ifdef DL_DLL_IGCONVRLINK #undef DL_DLL_IGCONVRLINK #...
Definition: export.h:32
Contains makVrv::DtSimEntryUpdater class.
Contains makVrv::DtBalancedUpdater class.
Base class to provide boost signal/slot management.
makVrv::DtBalancedUpdater< LaserDesignatorStateUpdater > LaserDesignatorUpdaterGroup
Definition: laserDesignatorSimDataProcessor.h:139
LaserDesignatorUpdateGroupMap myRefreshRateGroups
Definition: laserDesignatorSimDataProcessor.h:152
std::map< makVrv::DtSimEntryUpdater::UpdateRate, LaserDesignatorUpdaterGroup > LaserDesignatorUpdateGroupMap
Definition: laserDesignatorSimDataProcessor.h:141
std::map< makVrv::DtUniqueID, LaserDesignatorSimDataInstance > LaserDesignatorAgentMap
Definition: laserDesignatorSimDataProcessor.h:137
makVrv::DtSimEntryObjectAgent * mySimEntryAgent
Definition: laserDesignatorSimDataProcessor.h:149
DtLaserDesignatorStateObjectAgent * myAgent
One for the laser to be able to be seen independently and one for the entity to tie it to the laser...
Definition: laserDesignatorSimDataProcessor.h:132
makVrv::DT_PROTOCOL_NAMESPACE::DtLaserDesignatorExistenceListener * myListener
Definition: laserDesignatorSimDataProcessor.h:147
Definition: laserDesignatorState.h:26
Listens for new laser designators and keeps track of them.
Definition: DtLaserDesignatorExistenceListener.h:37
DtLaserDesignatorStateObjectAgent * myObjectAgent
Definition: laserDesignatorSimDataProcessor.h:120
std::map< DtGlobalObjectDesignator, makVrv::DT_PROTOCOL_NAMESPACE::DtVrlinkLaserDesignatorStateListener * > AwaitingMap
Definition: laserDesignatorSimDataProcessor.h:158

Document ID: Generated on Thu Aug 27 10:56:05 EDT 2020 from SVN revision 217100
Copyright © 2005-2020 MAK Technologies. All Rights Reserved (www.mak.com)