VR-Forces 4.6.1 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 DtSetTargetRequest;
22 class DtDesignatorPublisher;
25 class DtVrfObjectMessage;
26 
32 {
33 protected:
36 
39  orig);
40 
42  const DtLasingController & operator=(const DtLasingController & orig);
43 
44 public:
45 
47  DtLasingController(const DtString& name,
48  DtVrfObject* owner,
49  DtSimManager* simManager,
50  DtComponentDescriptor* desc = 0,
51  DtReaderWriterRegistry* parentRegistry = 0);
52 
54  virtual ~DtLasingController();
55 
56  //Initializes the laser controller
57  virtual bool init();
58 
61  virtual const char* type() const;
62 
67  virtual void preFirstTickInit();
68 
76  virtual void tick();
77 
79  virtual void setDesignatorCode(const int code);
80  virtual const int designatorCode() const;
81 
82  virtual void clearTask();
83 
87  virtual bool createProcessSR();
88 
90  virtual void startLasing();
91  virtual void stopLasing();
92 
95  virtual void laseTarget(DtVrfObject* targetObject);
96 
98  virtual bool lasing();
99 
100  //static creator
101  static DtSimComponent * creator(const DtString& name,
102  DtVrfObject* owner,
103  DtSimManager* simManager,
104  DtComponentDescriptor* desc = 0,
105  DtReaderWriterRegistry* parentRegistry = 0);
106 
108  virtual void registerTaskMsgCallbacks();
109  virtual void registerSetLaseAutonomousMsgCallbacks();
110  virtual void registerSetLaserCodeRequestMsgCallbacks();
111 
112  //static callbacks to register with the radio for commands to lase a target
113  static void laseTargetTaskCallback(DtSimMessage *msg, void * usrData);
114  static void setLaseAutonomousRequestCallback(DtSimMessage* msg, void* usrData);
115  static void setLaserCodeRequestCallback(DtSimMessage* msg, void* usrData);
116 
117  //functions to do the work for the static function.
118  virtual void processLaseTargetTaskMessage(DtSimMessage *msg);
119  virtual void processSetLaseAutonomousRequestMessage(DtSimMessage* msg);
120  virtual void processSetLaserCodeRequestMessage(DtSimMessage* msg);
121 
122  static void requestLaserCodeCallback(const DtVrfObjectMessage* msg, void* usr);
123  virtual void processRequestLaserCode(const DtVrfObjectMessage* msg);
124 
125 protected:
127  virtual bool lineOfSight(DtVrfObject* target, DtString& reason);
128 
129  //updates the designator state and publishes it on the
130  //network
131  virtual void tickLaser();
132 
134  virtual void setRadio(DtSimRadio * radio);
135 
136  virtual bool createPublisher();
137 
138  virtual bool createTargetInput();
139 
142  virtual double laserPower() const;
143 
146  virtual double laserWavelength() const;
147 
152  virtual bool laseTargetValid(DtVrfObject* target, DtString& invalidReason);
153 
156  virtual DtVrfObject* chooseAutonomousLaseTarget();
157 
159  virtual int defaultLaserCode() const;
160 
163  static void objectAboutToBeRemovedCallback(DtVrfObject* vrfObject,
164  void* usr);
165 
168  virtual void processObjectAboutToBeRemovedCallback(DtVrfObject* vrfObject);
169 
175  {
176  private:
178 
181  const DtLasingControllerInput& operator=(const DtLasingControllerInput& rhs);
183  public:
185  virtual ~DtLasingControllerInput();
186  virtual bool init();
187  virtual DtVrfObject* getTarget() = 0;
188  protected:
190  };
191 
194  {
195  private:
197 
200  const DtLasingControllerPortInput& operator=(const DtLasingControllerPortInput& rhs);
202 
203  public:
205  virtual ~DtLasingControllerPortInput();
206  virtual bool init();
207  virtual DtVrfObject* getTarget();
208 
209  protected:
211  };
212 
215  {
216  private:
218 
223  public:
226  virtual bool init();
227  virtual DtVrfObject* getTarget();
228 
229  protected:
231  };
232 
233 protected:
235 
239 
241  DtDesignatorPublisher* myDesPublisher;
242 
247 
250 };
251 
255 int generateLaserCodeFromName(const DtString& objectName);

Document ID: Generated on Wed Jul 25 16:57:45 EDT 2018 from SVN revision 190790
Copyright © 2005-2018 VT MÄK. All Rights Reserved (www.mak.com)