VR-Forces 4.3.1 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
fixedWingPilotController.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 1999-2000 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
8 
11 
12 #pragma once
13 
15 #include <matrix/LibMatrix.h>
16 
17 class DtString;
18 class DtSimManager;
23 class DtTaskMessage;
25 
28 const double DtTurningSpeedTol = 0.0556;
29 
35 const double DtLandingTolerance = 2.5;
36 
45 {
46 
47 public:
48 
52  DtVrfObject* owner,
53  DtSimManager* simManager,
54  DtComponentDescriptor* desc = 0,
55  DtReaderWriterRegistry* parentRegistry = 0);
56 
58  virtual ~DtFixedWingPilotController();
59 
61  virtual bool init();
62 
66  virtual void tick();
67 
70  virtual DtString type() const;
71 
74  virtual void clearTask();
75 
90  virtual void taxiTo(const DtVector& destination, double speed);
91 
98  virtual void taxi(double speed, double turnRate);
99 
103  virtual double calculateSteering(double turnAngle) const;
104 
107  virtual double approximateThrottle(double speed);
108 
111  virtual double calculateCurrentBrakingDistance() const;
113 
114 
127  virtual void flyTo(const DtVector& destination, double speed);
128 
134  virtual void flyToDirect(const DtVector& destination, double speed);
135 
144  virtual void fly(double speed, double turnRate, double climbRate);
145 
154  virtual void flyFixedPitch(double speed, double turnRate, double desiredPitch);
155 
181  virtual void circle(const DtVector& center, double radius, double speed,
182  double altitude, bool clockwise = true);
183 
186  virtual double calcControlForRoll(double rollRate);
187 
195 
198  virtual double calcControlForThrottle(double speed, bool& deployFlaps);
199 
203  virtual void calcControlForTurnAndClimb(double turnRate, double climbRate,
204  double& stickX, double& pedal);
205 
210  virtual void calcControlForTurnAndPitch(double turnRate, double desiredPitch,
211  double& stickX, double& pedal);
212 
219  virtual double calculateClimbRate(double altitude, double climbTime) const;
220 
226  // turn rate = (heading change / max-turnrate-cutoff-angle) *
227  // max-pitch-rate
231  virtual double calculateTurnRate(double turnAngle) const;
232 
235  // roll angle = ATAN((speed * turn rate * 0.5) / 9.8)
236  virtual double calculateRollAngle(double turnRate, double speed)
237  const;
238 
241  virtual double calculateRollRate(double rollAngle);
242 
244 
258  virtual void calculateNormalizedBodyVelocity();
259 
265  virtual void calculateLocalAngularVelocity();
266 
272  // mySpeedRatioSquared
273  virtual void calculateSpeedRatioSquared();
274 
281  virtual void initializeControllerForTick();
282 
285  virtual bool createFixedWingControlPortGroup();
286  virtual bool createThrottlePort();
287  virtual bool createStickPort();
288  virtual bool createPedalPort();
289  virtual bool createBrakePort();
290 
292  virtual bool createFlapsDeployedPort();
293 
295  virtual DtConstrainedAnalogOutputPort* throttlePort();
296  virtual DtConstrainedDualAxisAnalogOutputPort* stickPort();
297  virtual DtConstrainedAnalogOutputPort* pedalPort();
298  virtual DtConstrainedAnalogOutputPort* brakePort();
299  virtual DtBooleanOutputPort* flapsDeployedPort();
300 
302  virtual void setMaxThrustAcceleration(double maxThrustAcceleration);
303 
305  virtual void setTakeOffDir(const DtVector& takeOffDir);
306  virtual const DtVector& takeOffDir() const;
307 
310  virtual DtReal maxTurningGs() const;
311  virtual DtReal maxTurnRateCutoffAngle() const;
312  virtual DtReal maxTaxiingTurnSpeed() const;
313  virtual DtReal taxiingNearDistance() const;
314  virtual DtReal taxiingAtDistance() const;
315  virtual DtReal taxiingApproachSpeed() const;
316  virtual DtReal maxPitchAngle() const;
317  virtual DtReal timeToTargetAltitude() const;
319 
323  static DtSimComponent * creator(const DtString& name,
324  DtVrfObject* owner,
325  DtSimManager* simManager,
326  DtComponentDescriptor* desc = 0,
327  DtReaderWriterRegistry* parentRegistry = 0);
328 
329 protected:
330 
332  virtual bool createPorts();
333 
335  virtual bool createPortGroups();
336 
344  virtual void lookupAndCacheProcessSR();
345 
350  virtual bool postAddComponentsInit();
351 
354  virtual bool decideToGiveUpTask() const;
355 
356 protected:
357 
360 
363  orig);
364 
368 
369 protected:
370 
372 
375 
379 
386 
393 
400 
407 
414 
416 
423 };

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)