VR-Forces Development_Version 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 
16 
19 
20 #include <matrix/vlVector.h>
21 #include <vlutil/vlPerformanceStats.h>
22 
23 class CigiViewCtrlV3;
24 class CigiIGSession;
25 class CigiBasePacket;
26 
27 namespace makVrv
28 {
29  class DtCigiConnectionInitializer;
30  class DtCigiNetworkIO;
31  class DtAgentManagerInterface;
32  class DtCigiEntityVisualizer;
33  class DtCoordinateSystem;
34  class DtSharedSettingsManager;
35  class DtVirtualBaseClass;
36  class DtCigiIgControlProcessor;
37  class DtHatHotResponder;
38  class DtLosResponder;
39 
46  {
47  public:
48  enum DtIgMode
49  {
50  ResetStandby = 0,
51  Operate = 1,
52  Debug = 2
53  };
54 
57  DtAgentManagerInterface& sceneInterface,
58  DtSharedSettingsManager& settingsManager,
59  DtCigiDriver& driver);
60 
62  virtual ~DtCigiConnection();
63 
65  virtual bool tick();
66 
68  virtual bool connect();
69 
71  virtual bool disconnect();
72 
74  virtual void setConnectionInitializer(const DtCigiConnectionInitializer& init);
75 
77  virtual int cigiMinorVersion() const;
78 
80  virtual void sendCigiMessages();
81 
83  virtual void setCoordinateSystem(const std::string& name,
84  const std::string& params);
85 
87  virtual DtCoordinateSystem& coordinateSystem();
88 
90  virtual const DtCigiEntityVisualizer& entityManager() const;
91 
93  virtual const makArchives::DtCigiSettingsRecord& cigiSettings() const;
94 
96  virtual void setLastHostFrameNumber(unsigned int frameNumber);
97 
99  virtual unsigned int lastHostFrameNumber() const;
100 
102  inline bool useSynchronousMode() const
103  {
104  return myUseSynchronousMode;
105  }
106 
108  virtual void setIgMode(DtIgMode mode);
109 
111  inline DtIgMode igMode() const
112  {
113  return myMode;
114  }
115 
117  virtual void setDatabaseNumber(int number);
118 
120  virtual int databaseNumber() const;
121 
124  virtual void setLoadingDatabase();
125 
128  virtual void setDatabaseLoaded();
129 
131  virtual void setExtrapolationEnabled(bool enabled);
132 
134  virtual bool extrapolationEnabled() const;
135 
137  virtual void setTimestampValid(bool valid);
138 
140  virtual bool timestampValid() const;
141 
143  virtual void setLastTimestamp(unsigned int timestamp);
144 
146  virtual unsigned int lastTimestamp() const;
147 
149  virtual void sendHatHotResponse(double height, unsigned int hotId, bool hat,
150  unsigned int lastFrame, bool valid);
151 
153  virtual void sendLosResponse(int losId, int entityId, bool visible, double range,
154  int responseCount, int hostFrame);
155 
160  virtual void sendUserPacket( CigiBasePacket* packet );
161 
163  virtual DtHatHotResponder& hatHotResponder();
164 
166  virtual DtLosResponder& losResponder();
167 
169  virtual unsigned int currentIgFrame() const;
170 
172  virtual DtComponentSignaler& componentSignaler();
173 
175 
176 
177  virtual CigiIGSession& session();
178  virtual const CigiIGSession& session() const;
180 
182  bool cigiSessionExists() const;
183 
185  virtual bool registerUserPacket(CigiBasePacket *packet,
186  unsigned int packetId, bool hostSend, bool igSend);
187 
189  virtual bool useThreadFlag() const;
190 
192  virtual void queueDriverFunction(boost::function<void ()> func);
193 
197  virtual void queueConnectionFunction(boost::function<void ()> func);
198 
200 
201 
207  virtual void startOverloadTimer();
208 
210  virtual void stopOverloadTimer();
211 
213  virtual bool overloaded();
214 
217  virtual void setWarnOnOverload( bool b );
218 
220  virtual bool warnOnOverload() const;
221 
225  virtual void setDropMessagesOnOverload( bool b );
226 
228  virtual bool dropMessagesOnOverload() const;
230 
232  boost::signal<void (DtViewStateProcessor::ObserverAction&)>
234 
236  boost::signal<void (int, DtUniqueID)> signal_alphaChanged;
237 
239  boost::signal<void (int, DtCigiViewController::DtViewDefinitionAction) >
241 
243  boost::signal<void (int, DtCigiViewController::DtViewControlAction)>
245 
247  boost::signal<void (int, int, int, int, int)> signal_timeSet;
248 
251  boost::signal<void (bool)> signal_ephemerisEnableSet;
252 
254  boost::signal<void (const std::string&)> signal_loadDatabase;
255 
257  boost::signal<void ()> signal_connected;
258 
260  boost::signal<void ()> signal_toBeDisconnected;
261 
263  boost::signal<void ()> signal_coordinateSystemChanged;
264 
265  boost::signal<void (bool)> signal_deadReckoningAllowedChanged;
266 
267  protected:
269  void on_viewControlReceived(const CigiViewCtrlV3& viewControl);
270 
271  protected:
272  typedef std::map<std::string,DtVirtualBaseClass*> InstanceMap;
273 
285  unsigned int myIgFrame;
286  unsigned int myLastHostFrameNumber;
293  unsigned int myLastTimestamp;
295 
296  DtTimedSection myOverloadTimer;
300  };
301 }

Document ID: Generated on Tue Mar 8 22:13:38 EST 2016 from SVN revision 162938
Copyright © 2005-2015 VT MÄK. All Rights Reserved (www.mak.com)