VR-Forces 4.3.1 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
DtCigiConnection.h
Go to the documentation of this file.
1 /*********************************************************************
2 ** Copyright (c) 2014 MaK Technologies, Inc.
3 ** All rights reserved.
4 *********************************************************************/
5 
9 
10 #pragma once
11 
12 #include <vrvCigi/vrvCigi.h>
13 
18 
21 
23 
25 
26 #include <matrix/vlVector.h>
27 #include <vlutil/vlPerformanceStats.h>
28 
29 #include <boost/signal.hpp>
30 
31 class CigiViewCtrlV3;
32 class CigiIGSession;
33 class CigiBasePacket;
34 
35 namespace makVrv
36 {
37  class DtCigiConnectionInitializer;
38  class DtCigiNetworkIO;
39  class DtAgentManagerInterface;
40  class DtCigiEntityVisualizer;
41  class DtCoordinateSystem;
42  class DtSharedSettingsManager;
43  class DtVirtualBaseClass;
44  class DtCigiIgControlProcessor;
45  class DtHatHotResponder;
46  class DtLosResponder;
47 
54  {
55  public:
56  enum DtIgMode
57  {
58  ResetStandby = 0,
59  Operate = 1,
60  Debug = 2
61  };
62 
65  DtAgentManagerInterface& sceneInterface,
66  DtSharedSettingsManager& settingsManager,
67  DtCigiDriver& driver);
68 
70  virtual ~DtCigiConnection();
71 
73  virtual bool tick();
74 
76  virtual bool connect();
77 
79  virtual bool disconnect();
80 
82  virtual void setConnectionInitializer(const DtCigiConnectionInitializer& init);
83 
85  virtual int cigiMinorVersion() const;
86 
88  virtual void sendCigiMessages();
89 
91  virtual void setCoordinateSystem(const std::string& name,
92  const std::string& params);
93 
95  virtual DtCoordinateSystem& coordinateSystem();
96 
98  virtual const DtCigiEntityVisualizer& entityManager() const;
99 
101  virtual const makArchives::DtCigiSettingsRecord& cigiSettings() const;
102 
104  virtual void setLastHostFrameNumber(unsigned int frameNumber);
105 
107  virtual unsigned int lastHostFrameNumber() const;
108 
114  virtual DtVirtualBaseClass* findInstance(const std::string& instanceName);
115 
128  inline bool destroyingInstances() const
129  {
130  return myDestroyingInstancesFlag;
131  }
132 
134  inline bool useSynchronousMode() const
135  {
136  return myUseSynchronousMode;
137  }
138 
141  virtual void registerInstance(const std::string& instanceName,
142  DtVirtualBaseClass* instance);
143 
145  virtual void setIgMode(DtIgMode mode);
146 
148  inline DtIgMode igMode() const
149  {
150  return myMode;
151  }
152 
154  virtual void setDatabaseNumber(int number);
155 
157  virtual int databaseNumber() const;
158 
161  virtual void setLoadingDatabase();
162 
165  virtual void setDatabaseLoaded();
166 
168  virtual void setExtrapolationEnabled(bool enabled);
169 
171  virtual bool extrapolationEnabled() const;
172 
174  virtual void setTimestampValid(bool valid);
175 
177  virtual bool timestampValid() const;
178 
180  virtual void setLastTimestamp(unsigned int timestamp);
181 
183  virtual unsigned int lastTimestamp() const;
184 
186  virtual void sendHatHotResponse(double height, unsigned int hotId, bool hat,
187  unsigned int lastFrame, bool valid);
188 
190  virtual void sendLosResponse(int losId, int entityId, bool visible, double range,
191  int responseCount, int hostFrame);
192 
197  virtual void sendUserPacket( CigiBasePacket* packet );
198 
200  virtual DtHatHotResponder& hatHotResponder();
201 
203  virtual DtLosResponder& losResponder();
204 
206  virtual unsigned int currentIgFrame() const;
207 
209  virtual DtComponentSignaler& componentSignaler();
210 
212 
213 
214  virtual CigiIGSession& session();
215  virtual const CigiIGSession& session() const;
217 
219  bool cigiSessionExists() const;
220 
222  virtual bool registerUserPacket(CigiBasePacket *packet,
223  unsigned int packetId, bool hostSend, bool igSend);
224 
226  virtual bool useThreadFlag() const;
227 
229  virtual void queueDriverFunction(boost::function<void ()> func);
230 
234  virtual void queueConnectionFunction(boost::function<void ()> func);
235 
237 
238 
244  virtual void startOverloadTimer();
245 
247  virtual void stopOverloadTimer();
248 
250  virtual bool overloaded();
251 
254  virtual void setWarnOnOverload( bool b );
255 
257  virtual bool warnOnOverload() const;
258 
262  virtual void setDropMessagesOnOverload( bool b );
263 
265  virtual bool dropMessagesOnOverload() const;
267 
269  boost::signal<void (DtViewStateProcessor::ObserverAction&)>
271 
273  boost::signal<void (int, DtUniqueID)> signal_alphaChanged;
274 
276  boost::signal<void (int, DtCigiViewController::DtViewDefinitionAction) >
278 
280  boost::signal<void (int, DtCigiViewController::DtViewControlAction)>
282 
284  boost::signal<void (int, int, int, int, int)> signal_timeSet;
285 
288  boost::signal<void (bool)> signal_ephemerisEnableSet;
289 
291  boost::signal<void (const std::string&)> signal_loadDatabase;
292 
294  boost::signal<void ()> signal_connected;
295 
297  boost::signal<void ()> signal_toBeDisconnected;
298 
300  boost::signal<void ()> signal_coordinateSystemChanged;
301 
302  boost::signal<void (bool)> signal_deadReckoningAllowedChanged;
303 
304  protected:
306  void on_viewControlReceived(const CigiViewCtrlV3& viewControl);
307 
308  protected:
309  typedef std::map<std::string,DtVirtualBaseClass*> InstanceMap;
310 
322  unsigned int myIgFrame;
323  unsigned int myLastHostFrameNumber;
330  unsigned int myLastTimestamp;
331 
332  //Stores a pointer to simulation specific instances.
336 
337  DtTimedSection myOverloadTimer;
341  };
342 }

Document ID: Generated on Wed Jul 29 00:55:00 EDT 2015 from SVN revision 155257
Copyright © 2005-2015 VT MÄK. All Rights Reserved (www.mak.com)