![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /******************************************************************************* 00002 ** Copyright (c) 1999-2003 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 *******************************************************************************/ 00005 /******************************************************************************* 00006 ** $RCSfile: rotWingTaskCtl.h,v $ $Revision: 1.4 $ $State: Exp $ 00007 *******************************************************************************/ 00008 00011 00014 00015 #ifndef rotWingTaskCtl_H_ 00016 #define rotWingTaskCtl_H_ 00017 00018 #include "vrfobjcore/singleTaskControllerComponent.h" 00019 #include "vrfmodel/vrfmodelDefines.h" 00020 00021 class DtString; 00022 class DtSimManager; 00023 class DtRotaryWingEntityStateRepository; 00024 class DtRotaryWingFlightPSR; 00025 class DtAnalogOutputPort; 00026 class DtVectorOutputPort; 00027 class DtOutputPortGroup; 00028 class DtBooleanOutputPort; 00029 00034 class DT_DLL_vrfmodel DtRotaryWingTaskController : public DtSingleTaskControllerComponent 00035 { 00036 public: 00039 DtRotaryWingTaskController(const DtString& name, 00040 DtVrfObject* owner, 00041 DtSimManager* simManager, 00042 DtComponentDescriptor* desc = 0, 00043 DtReaderWriterRegistry* parentRegistry = 0); 00044 00046 virtual ~DtRotaryWingTaskController(); 00047 00049 virtual bool init(); 00050 00052 virtual DtString type() const = 0; 00053 00056 virtual void clearTask(); 00057 00060 00061 virtual void setDesiredPosition(const DtVector& pos); 00062 virtual void setDesiredVelocity(const DtVector& vel); 00063 virtual void setDesiredAcceleration(const DtVector& accel); 00064 virtual void setDesiredHeading(double heading); 00065 virtual void setPositionSelector(double sel); 00066 virtual void setVelocitySelector(double sel); 00067 virtual void setAccelerationSelector(double sel); 00068 virtual void setHeadingSelector(double sel); 00069 virtual void setAggressiveness(double agg); 00070 virtual void setPowerDown(bool powerDown); 00072 00074 00075 virtual DtVectorOutputPort *desiredPositionPort(); 00076 virtual DtVectorOutputPort *desiredVelocityPort(); 00077 virtual DtVectorOutputPort *desiredAccelerationPort(); 00078 virtual DtAnalogOutputPort *desiredHeadingPort(); 00079 virtual DtAnalogOutputPort *positionSelectorPort(); 00080 virtual DtAnalogOutputPort *velocitySelectorPort(); 00081 virtual DtAnalogOutputPort *accelerationSelectorPort(); 00082 virtual DtAnalogOutputPort *headingSelectorPort(); 00083 virtual DtAnalogOutputPort *aggressivenessPort(); 00084 virtual DtBooleanOutputPort* powerDownPort(); 00086 00087 protected: 00088 00090 virtual bool createPortGroups(); 00091 00093 virtual bool createPorts(); 00094 00096 00097 virtual bool createGuidancePortGroup(); 00098 virtual bool createDesiredPositionPort(); 00099 virtual bool createDesiredVelocityPort(); 00100 virtual bool createDesiredAccelerationPort(); 00101 virtual bool createDesiredHeadingPort(); 00102 virtual bool createPositionSelectorPort(); 00103 virtual bool createVelocitySelectorPort(); 00104 virtual bool createAccelerationSelectorPort(); 00105 virtual bool createHeadingSelectorPort(); 00106 virtual bool createAggressivenessPort(); 00107 virtual bool createPowerDownPort(); 00109 00117 virtual void lookupAndCacheProcessSR(); 00118 00121 virtual bool postAddComponentsInit(); 00122 00123 private: 00125 DtRotaryWingTaskController(); 00126 00128 DtRotaryWingTaskController(const DtRotaryWingTaskController & 00129 orig); 00130 00132 const DtRotaryWingTaskController & operator=(const 00133 DtRotaryWingTaskController & orig); 00134 00135 00136 protected: 00137 00138 DtRotaryWingEntityStateRepository * myRotaryWingEntityState; 00139 00141 00142 00146 DtOutputPortGroup *myGuidancePortGroup; 00147 00152 DtVectorOutputPort *myDesiredPositionPort; 00153 00158 DtVectorOutputPort *myDesiredVelocityPort; 00159 00164 DtVectorOutputPort *myDesiredAccelerationPort; 00165 00170 DtAnalogOutputPort *myDesiredHeadingPort; 00171 00177 DtAnalogOutputPort *myPositionSelectorPort; 00178 00184 DtAnalogOutputPort *myVelocitySelectorPort; 00185 00191 DtAnalogOutputPort *myAccelerationSelectorPort; 00192 00198 DtAnalogOutputPort *myHeadingSelectorPort; 00199 00205 DtAnalogOutputPort *myAggressivenessPort; 00206 00215 DtBooleanOutputPort* myPowerDownPort; 00217 00223 DtRotaryWingFlightPSR* myProcessState; 00224 }; 00225 #endif