VR-Forces 4.1 Class Documentation
fixWngPltCtl.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 
33 const double DtLandingTolerance = 1.0;
34 
43 {
44 
45 public:
46 
50  DtVrfObject* owner,
51  DtSimManager* simManager,
52  DtComponentDescriptor* desc = 0,
53  DtReaderWriterRegistry* parentRegistry = 0);
54 
56  virtual ~DtFixedWingPilotController();
57 
59  virtual bool init();
60 
64  virtual void tick();
65 
68  virtual DtString type() const;
69 
72  virtual void clearTask();
73 
88  virtual void taxiTo(const DtVector& destination, double speed);
89 
96  virtual void taxi(double speed, double turnRate);
97 
101  virtual double calculateSteering(double turnAngle) const;
102 
105  virtual double approximateThrottle(double speed);
106 
109  virtual double calculateCurrentBrakingDistance() const;
111 
112 
125  virtual void flyTo(const DtVector& destination, double speed);
126 
132  virtual void flyToDirect(const DtVector& destination, double speed);
133 
142  virtual void fly(double speed, double turnRate, double climbRate);
143 
152  virtual void flyFixedPitch(double speed, double turnRate, double desiredPitch);
153 
179  virtual void circle(const DtVector& center, double radius, double speed,
180  double altitude, bool clockwise = true);
181 
184  virtual double calcControlForRoll(double rollRate);
185 
193 
196  virtual double calcControlForThrottle(double speed, bool& deployFlaps);
197 
201  virtual void calcControlForTurnAndClimb(double turnRate, double climbRate,
202  double& stickX, double& pedal);
203 
208  virtual void calcControlForTurnAndPitch(double turnRate, double desiredPitch,
209  double& stickX, double& pedal);
210 
217  virtual double calculateClimbRate(double altitude, double climbTime) const;
218 
224  // turn rate = (heading change / max-turnrate-cutoff-angle) *
225  // max-pitch-rate
229  virtual double calculateTurnRate(double turnAngle) const;
230 
233  // roll angle = ATAN((speed * turn rate * 0.5) / 9.8)
234  virtual double calculateRollAngle(double turnRate, double speed)
235  const;
236 
239  virtual double calculateRollRate(double rollAngle);
240 
242 
256  virtual void calculateNormalizedBodyVelocity();
257 
263  virtual void calculateLocalAngularVelocity();
264 
270  // mySpeedRatioSquared
271  virtual void calculateSpeedRatioSquared();
272 
279  virtual void initializeControllerForTick();
280 
283  virtual bool createFixedWingControlPortGroup();
284  virtual bool createThrottlePort();
285  virtual bool createStickPort();
286  virtual bool createPedalPort();
287  virtual bool createBrakePort();
288 
290  virtual bool createFlapsDeployedPort();
291 
293  virtual DtConstrainedAnalogOutputPort* throttlePort();
294  virtual DtConstrainedDualAxisAnalogOutputPort* stickPort();
295  virtual DtConstrainedAnalogOutputPort* pedalPort();
296  virtual DtConstrainedAnalogOutputPort* brakePort();
297  virtual DtBooleanOutputPort* flapsDeployedPort();
298 
300  virtual void setMaxThrustAcceleration(double maxThrustAcceleration);
301 
303  virtual void setTakeOffDir(const DtVector& takeOffDir);
304  virtual const DtVector& takeOffDir() const;
305 
308  virtual DtReal maxTurningGs() const;
309  virtual DtReal maxTurnRateCutoffAngle() const;
310  virtual DtReal maxTaxiingTurnSpeed() const;
311  virtual DtReal taxiingNearDistance() const;
312  virtual DtReal taxiingAtDistance() const;
313  virtual DtReal taxiingApproachSpeed() const;
314  virtual DtReal maxPitchAngle() const;
315  virtual DtReal timeToTargetAltitude() const;
317 
321  static DtSimComponent * creator(const DtString& name,
322  DtVrfObject* owner,
323  DtSimManager* simManager,
324  DtComponentDescriptor* desc = 0,
325  DtReaderWriterRegistry* parentRegistry = 0);
326 
327 protected:
328 
330  virtual bool createPorts();
331 
333  virtual bool createPortGroups();
334 
342  virtual void lookupAndCacheProcessSR();
343 
348  virtual bool postAddComponentsInit();
349 
352  virtual bool decideToGiveUpTask() const;
353 
354 protected:
355 
358 
361  orig);
362 
366 
367 protected:
368 
370 
373 
377 
384 
391 
398 
405 
412 
414 
421 };

Document ID: Generated on Tue Jan 29 18:21:16 EST 2013 from SVN revision 123193
Copyright © 2005-2013 VT MÄK Inc. All Rights Reserved (www.mak.com)