VR-Forces 4.7 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
lasingController.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2012 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
8 
9 #pragma once
10 
13 
14 class DtString;
15 class DtSimManager;
16 class DtSimMessage;
18 class DtLasingPSR;
20 class DtOutputPortGroup;
21 class DtBooleanInputPort;
22 class DtVectorInputPort;
24 class DtSetTargetRequest;
25 class DtDesignatorPublisher;
28 class DtVrfObjectMessage;
29 
35 {
36 protected:
39 
42  orig);
43 
45  const DtLasingController & operator=(const DtLasingController & orig);
46 
47 public:
48 
50  DtLasingController(const DtString& name,
51  DtVrfObject* owner,
52  DtSimManager* simManager,
53  DtComponentDescriptor* desc = 0,
54  DtReaderWriterRegistry* parentRegistry = 0);
55 
57  virtual ~DtLasingController();
58 
59  //Initializes the laser controller
60  virtual bool init();
61 
64  virtual const char* type() const;
65 
70  virtual void preFirstTickInit();
71 
79  virtual void tick();
80 
82  virtual void setDesignatorCode(const int code);
83  virtual const int designatorCode() const;
84 
85  virtual void clearTask();
86 
90  virtual bool createProcessSR();
91 
93  virtual void startLasing();
94  virtual void stopLasing();
95 
98  virtual void laseTarget(DtVrfObject* targetObject);
99 
102  virtual void laseLocation(const DtVector& location);
103 
105  virtual bool lasing();
106 
107  //static creator
108  static DtSimComponent * creator(const DtString& name,
109  DtVrfObject* owner,
110  DtSimManager* simManager,
111  DtComponentDescriptor* desc = 0,
112  DtReaderWriterRegistry* parentRegistry = 0);
113 
115  virtual void registerTaskMsgCallbacks();
116  virtual void registerSetLaseAutonomousMsgCallbacks();
117  virtual void registerSetLaserCodeRequestMsgCallbacks();
118  virtual void registerSetLaserInformationRequestMsgCallbacks();
119 
120  //static callbacks to register with the radio for commands to lase a target
121  static void laseTargetTaskCallback(DtSimMessage *msg, void * usrData);
122  static void laseLocationTaskCallback(DtSimMessage *msg, void * usrData);
123  static void setLaseAutonomousRequestCallback(DtSimMessage* msg, void* usrData);
124  static void setLaserCodeRequestCallback(DtSimMessage* msg, void* usrData);
125  static void setLaserInformationRequestCallback(DtSimMessage* msg, void* usrData);
126 
127  //functions to do the work for the static function.
128  virtual void processLaseTargetTaskMessage(DtSimMessage *msg);
129  virtual void processLaseLocationTaskMessage(DtSimMessage *msg);
130  virtual void processSetLaseAutonomousRequestMessage(DtSimMessage* msg);
131  virtual void processSetLaserInformationRequestMessage(DtSimMessage* msg);
132  virtual void processSetLaserCodeRequestMessage(DtSimMessage* msg);
133 
134  static void requestLaserCodeCallback(const DtVrfObjectMessage* msg, void* usr);
135  virtual void processRequestLaserCode(const DtVrfObjectMessage* msg);
136 
137 protected:
138 
140  virtual bool createPortGroups();
141 
143  virtual bool createPorts();
144 
146  virtual bool lineOfSight(DtVrfObject* target, DtString& reason);
147 
149  virtual bool targetPoint(const DtTaitBryan& orientation, DtVector& location);
150 
152  virtual DtVector localEyepoint() const;
153 
154  //updates the designator state and publishes it on the
155  //network
156  virtual void tickLaser();
157 
159  virtual void setRadio(DtSimRadio * radio);
160 
161  virtual bool createPublisher();
162 
163  virtual bool createTargetInput();
164 
167  virtual double laserPower() const;
168 
171  virtual double laserWavelength() const;
172 
177  virtual bool laseTargetValid(DtVrfObject* target, DtString& invalidReason);
178 
181  virtual DtVrfObject* chooseAutonomousLaseTarget();
182 
184  virtual int defaultLaserCode() const;
185 
188  static void objectAboutToBeRemovedCallback(DtVrfObject* vrfObject,
189  void* usr);
190 
193  virtual void processObjectAboutToBeRemovedCallback(DtVrfObject* vrfObject);
194 
200  {
201  private:
203 
206  const DtLasingControllerInput& operator=(const DtLasingControllerInput& rhs);
208  public:
210  virtual ~DtLasingControllerInput();
211  virtual bool init();
212  virtual DtVrfObject* getTarget() = 0;
213  protected:
215  };
216 
219  {
220  private:
222 
225  const DtLasingControllerPortInput& operator=(const DtLasingControllerPortInput& rhs);
227 
228  public:
230  virtual ~DtLasingControllerPortInput();
231  virtual bool init();
232  virtual DtVrfObject* getTarget();
233 
234  protected:
236  };
237 
240  {
241  private:
243 
248  public:
251  virtual bool init();
252  virtual DtVrfObject* getTarget();
253 
254  protected:
256  };
257 
258 protected:
260 
264 
266  DtDesignatorPublisher* myDesPublisher;
267 
272 
275 
281 
288 
293 
301 
309 };
310 
314 int generateLaserCodeFromName(const DtString& objectName);

Document ID: Generated on Fri Apr 26 21:53:14 EDT 2019 from SVN revision 197883
Copyright © 2005-2019 VT MAK. All Rights Reserved (www.mak.com)