VR-Forces 4.0.4 Class Documentation
include/vrfmodel/fixWngLandingController.h
Go to the documentation of this file.
00001 /*******************************************************************************
00002 ** Copyright (c) 2005 MAK Technologies, Inc.
00003 ** All rights reserved.
00004 *******************************************************************************/
00005 /******************************************************************************
00006 ** $RCSfile: fixWngLandingController.h,v $ $Revision: 1.20 $ $State: Exp $
00007 *******************************************************************************/
00008 
00011 
00013 
00014 
00015 #ifndef DtFixedWingLandingController_H_
00016 #define DtFixedWingLandingController_H_
00017 
00018 #include "vrfobjcore/singleTaskControllerComponent.h"
00019 #include "vrfobjcore/fixWngLandingPSR.h"
00020 
00021 class DtString;
00022 class DtSimManager;
00023 class DtTaskMessage;
00024 class DtFixedWingLandingDescriptor;
00025 class DtFixedWingEntityStateRepository;
00026 class DtLocalVertex;
00027 class DtFixedWingFlightPSR;
00028 class DtBooleanOutputPort;
00029 
00040 
00041 #include "vrfmodel/vrfmodelDefines.h"
00042 class DT_DLL_vrfmodel DtFixedWingLandingController : public DtSingleTaskControllerComponent
00043 {
00044 public:
00045 
00048    DtFixedWingLandingController(const DtString& name, 
00049       DtVrfObject* owner,
00050       DtSimManager* simManager, 
00051       DtComponentDescriptor* desc = 0,
00052       DtReaderWriterRegistry* parentRegistry = 0);
00053 
00055    virtual ~DtFixedWingLandingController();
00056 
00058    virtual bool init();
00059 
00060    virtual bool postAddComponentsInit();
00061 
00064    virtual DtString type() const;
00065 
00068    virtual bool tickWhileDestroyed() const;
00069 
00073    static DtSimComponent * creator(const DtString& name, 
00074       DtVrfObject* owner,
00075       DtSimManager* simManager, 
00076       DtComponentDescriptor* desc = 0,
00077       DtReaderWriterRegistry* parentRegistry = 0);
00078 
00079 protected:
00081    virtual void registerTaskMsgCallbacks();
00082 
00084    virtual void tick();
00085 
00087    virtual void clearCurrentTaskMessage();
00088 
00090    virtual void clearTask();
00091 
00093    virtual void removeControlPoint();
00094 
00096 protected:
00097 
00103    virtual bool createPSR();
00104 
00106    DtFixedWingFlightPSR* lookupFixedWingFlightPSR();
00107 
00109    virtual bool createPorts();
00110 
00113    static void taskCompleteReportCallback(DtSimMessage * msg, void * usr);
00114    virtual void processTaskComplete(DtSimMessage * msg);
00115 
00118    static void landingStripChanged(DtVrfObject* obj, void* userData);
00119    virtual void processLandingStripChanged(DtVrfObject*);
00120 
00124    virtual void processLandingTask(DtSimMessage* msg);
00125    static void landingTaskCallback(DtSimMessage* msg, void* usr);
00126 
00129    static void deleteVrfObjectCallback(DtVrfObject * msg, void * usr);
00130    virtual void processDeleteVrfObjectCallback(DtVrfObject* obj);
00131 
00136    virtual bool generateApproachRoute();
00137 
00141    virtual bool generateLandingRoute();
00142 
00144    virtual void setState(DtVrfFixedWingLandingPSR::DtLandingControllerState);
00145    virtual DtVrfFixedWingLandingPSR::DtLandingControllerState state() const;
00146 
00147    virtual void initRunwayCoordTransform(const DtVector& runwayStartLocal,
00148       const DtVector& runwayEndLocal, DtCoordTransform& resultTransform) const;
00149 
00152    virtual double calculateDecelerationConstant() const;
00153 
00155    virtual double calculateApproachSpeed() const;
00156 
00158    virtual void setupExistingConditions();
00159 
00162    virtual void setApproachSpeed();
00163 
00166    virtual void flyingAlongApproachRoute();
00167 
00170    virtual void moveAlongLandingStrip();
00171 
00173    virtual void movingAlongLandingStrip();
00174 
00181    virtual bool moveAlongLandingRouteRemainder();
00182 
00186    virtual bool checkPositionOnFinalLeg();
00187 
00191    virtual void flyingTowardsApproachRoute();
00192 
00195    virtual bool createApproachRoutePoints();
00196 
00200    virtual void setLandingAppearanceState();
00201 
00204    virtual double decelerationDistance() const;
00205 
00206 private:
00207    
00209    DtFixedWingLandingController();
00210 
00212    DtFixedWingLandingController(const DtFixedWingLandingController & 
00213       orig);
00214 
00216    const DtFixedWingLandingController & operator=(const 
00217       DtFixedWingLandingController & orig);
00218 
00219 protected:
00221    DtVrfObject*                     myControlPoint;
00222 
00225    DtVrfFixedWingLandingPSR*        myProcessState;
00226 
00227    DtFixedWingLandingDescriptor*    myFixedWingLandingDescriptor;
00228    DtFixedWingEntityStateRepository*   myFixedWingEntityState;
00229    DtFixedWingFlightPSR*            myFixedWingFlightPSR;
00230    bool                             myFirstTick;
00231    bool                             myWaiting;
00232    bool                             myLandingStripChanged;
00233 
00236 
00241    DtBooleanOutputPort*             myLandingGearControlPort;
00243 };
00244 #endif

Document ID: Generated on Fri Jun 29 16:33:32 EDT 2012 from SVN revision 116588
Copyright © 2005-2012 VT MÄK Inc. All Rights Reserved (www.mak.com)