VR-Forces 4.5 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 const char* 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 
201  virtual double calcControlForThrottle(double speed, bool& deployFlaps);
202 
214  virtual double decelerationLimitedClimbRate(double altitudeError,
215  double desiredSpeed, double finalClimbRate = 0.0);
216 
220  virtual void calcControlForTurnAndClimb(double turnRate, double climbRate,
221  double& stickX, double& pedal);
222 
227  virtual void calcControlForTurnAndPitch(double turnRate, double desiredPitch,
228  double& stickX, double& pedal, double rollRate = 0.0);
229 
236  virtual double calculateClimbRate(double altitude, double climbTime) const;
237 
243  // turn rate = (heading change / max-turnrate-cutoff-angle) *
244  // max-pitch-rate
248  virtual double calculateTurnRate(double turnAngle) const;
249 
252  // roll angle = ATAN((speed * turn rate * 0.5) / 9.8)
253  virtual double calculateRollAngle(double turnRate, double speed)
254  const;
255 
258  virtual double calculateRollRate(double rollAngle, double turnRate);
259 
261 
275  virtual void calculateNormalizedBodyVelocity();
276 
282  virtual void calculateLocalAngularVelocity();
283 
289  // mySpeedRatioSquared
290  virtual void calculateSpeedRatioSquared();
291 
299  virtual void initializeControllerForTick();
300 
303  virtual bool createFixedWingControlPortGroup();
304  virtual bool createThrottlePort();
305  virtual bool createStickPort();
306  virtual bool createPedalPort();
307  virtual bool createBrakePort();
308 
310  virtual bool createFlapsDeployedPort();
311 
313  virtual DtConstrainedAnalogOutputPort* throttlePort();
314  virtual DtConstrainedDualAxisAnalogOutputPort* stickPort();
315  virtual DtConstrainedAnalogOutputPort* pedalPort();
316  virtual DtConstrainedAnalogOutputPort* brakePort();
317  virtual DtBooleanOutputPort* flapsDeployedPort();
318 
320  virtual void setMaxThrustAcceleration(double maxThrustAcceleration);
321 
323  virtual void setTakeOffDir(const DtVector& takeOffDir);
324  virtual const DtVector& takeOffDir() const;
325 
328  virtual DtReal maxTurningGsForTask() const;
329  virtual DtReal maxTurnRateCutoffAngle() const;
330  virtual DtReal maxTaxiingTurnSpeed() const;
331  virtual DtReal taxiingNearDistance() const;
332  virtual DtReal taxiingAtDistance() const;
333  virtual DtReal taxiingApproachSpeed() const;
334  virtual DtReal maxPitchAngle() const;
335  virtual DtReal timeToTargetAltitude() const;
337 
341  virtual double maxTurningGs() const;
342 
346  static DtSimComponent * creator(const DtString& name,
347  DtVrfObject* owner,
348  DtSimManager* simManager,
349  DtComponentDescriptor* desc = 0,
350  DtReaderWriterRegistry* parentRegistry = 0);
351 
352 protected:
353 
355  virtual bool createPorts();
356 
358  virtual bool createPortGroups();
359 
367  virtual void lookupAndCacheProcessSR();
368 
373  virtual bool postAddComponentsInit();
374 
377  virtual bool decideToGiveUpTask() const;
378 
383  virtual void updateCurrentState();
384 
385 protected:
386 
389 
392  orig);
393 
397 
398 protected:
399 
401 
404 
408 
415 
422 
429 
436 
443 
445 
452 
465 
466 };

Document ID: Generated on Thu Mar 23 18:54:12 EDT 2017 from SVN revision 174804
Copyright © 2005-2017 VT MÄK. All Rights Reserved (www.mak.com)