X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FFDM%2FJSBSim%2Fmodels%2FFGFCS.h;h=5c485c2bd01af1849d07c2c9289da3857b43bc96;hb=1575fad886a0b18825363d41d53a287e8d36b9c8;hp=1a57835f9bee3a27fa4f11cf46891ce3cc021e54;hpb=ae5c29e68588064dfa0dbddbd196191f14fdea91;p=flightgear.git diff --git a/src/FDM/JSBSim/models/FGFCS.h b/src/FDM/JSBSim/models/FGFCS.h index 1a57835f9..5c485c2bd 100644 --- a/src/FDM/JSBSim/models/FGFCS.h +++ b/src/FDM/JSBSim/models/FGFCS.h @@ -51,7 +51,7 @@ INCLUDES DEFINITIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/ -#define ID_FCS "$Id: FGFCS.h,v 1.31 2010/09/22 11:33:40 jberndt Exp $" +#define ID_FCS "$Id: FGFCS.h,v 1.40 2011/10/31 14:54:41 bcoconni Exp $" /*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% FORWARD DECLARATIONS @@ -168,7 +168,7 @@ CLASS DOCUMENTATION @property gear/tailhook-pos-norm @author Jon S. Berndt - @version $Revision: 1.31 $ + @version $Revision: 1.40 $ @see FGActuator @see FGDeadBand @see FGFCSFunction @@ -200,8 +200,13 @@ public: bool InitModel(void); /** Runs the Flight Controls model; called by the Executive + Can pass in a value indicating if the executive is directing the simulation to Hold. + @param Holding if true, the executive has been directed to hold the sim from + advancing time. Some models may ignore this flag, such as the Input + model, which may need to be active to listen on a socket for the + "Resume" command to be given. @return false if no error */ - bool Run(void); + bool Run(bool Holding); /// @name Pilot input command retrieval //@{ @@ -238,11 +243,15 @@ public: @return throttle command in range from 0 - 1.0 for the given engine */ double GetThrottleCmd(int engine) const; + const vector& GetThrottleCmd() const {return ThrottleCmd;} + /** Gets the mixture command. @param engine engine ID number @return mixture command in range from 0 - 1.0 for the given engine */ double GetMixtureCmd(int engine) const { return MixtureCmd[engine]; } + const vector& GetMixtureCmd() const {return MixtureCmd;} + /** Gets the prop pitch command. @param engine engine ID number @return pitch command in range from 0.0 - 1.0 for the given engine */ @@ -313,15 +322,21 @@ public: @return throttle position for the given engine in range from 0 - 1.0 */ double GetThrottlePos(int engine) const; + const vector& GetThrottlePos() const {return ThrottlePos;} + /** Gets the mixture position. @param engine engine ID number @return mixture position for the given engine in range from 0 - 1.0 */ double GetMixturePos(int engine) const { return MixturePos[engine]; } + const vector& GetMixturePos() const {return MixturePos;} + /** Gets the steering position. @return steering position in degrees */ double GetSteerPosDeg(int gear) const { return SteerPosDeg[gear]; } + const vector& GetSteerPosDeg() const {return SteerPosDeg;} + /** Gets the gear position (0 up, 1 down), defaults to down @return gear position (0 up, 1 down) */ double GetGearPos(void) const { return GearPos; } @@ -339,22 +354,26 @@ public: @return prop pitch position for the given engine in range from 0 - 1.0 */ double GetPropAdvance(int engine) const { return PropAdvance[engine]; } + const vector& GetPropAdvance() const { return PropAdvance; } + /** Gets the prop feather position. @param engine engine ID number @return prop fether for the given engine (on / off)*/ bool GetPropFeather(int engine) const { return PropFeather[engine]; } + + const vector& GetPropFeather() const { return PropFeather; } //@} /** Retrieves all component names for inclusion in output stream @param delimiter either a tab or comma string depending on output type @return a string containing the descriptive names for all components */ - std::string GetComponentStrings(const std::string& delimiter); + std::string GetComponentStrings(const std::string& delimiter) const; /** Retrieves all component outputs for inclusion in output stream @param delimiter either a tab or comma string depending on output type @return a string containing the numeric values for the current set of component outputs */ - std::string GetComponentValues(const std::string& delimiter); + std::string GetComponentValues(const std::string& delimiter) const; /// @name Pilot input command setting //@{ @@ -494,32 +513,34 @@ public: //@{ /** Sets the left brake group @param cmd brake setting in percent (0.0 - 1.0) */ - void SetLBrake(double cmd) {LeftBrake = cmd;} + void SetLBrake(double cmd) {BrakePos[FGLGear::bgLeft] = cmd;} /** Sets the right brake group @param cmd brake setting in percent (0.0 - 1.0) */ - void SetRBrake(double cmd) {RightBrake = cmd;} + void SetRBrake(double cmd) {BrakePos[FGLGear::bgRight] = cmd;} /** Sets the center brake group @param cmd brake setting in percent (0.0 - 1.0) */ - void SetCBrake(double cmd) {CenterBrake = cmd;} + void SetCBrake(double cmd) {BrakePos[FGLGear::bgCenter] = cmd;} /** Gets the brake for a specified group. @param bg which brakegroup to retrieve the command for @return the brake setting for the supplied brake group argument */ double GetBrake(FGLGear::BrakeGroup bg); + const vector& GetBrakePos() const {return BrakePos;} + /** Gets the left brake. @return the left brake setting. */ - double GetLBrake(void) const {return LeftBrake;} + double GetLBrake(void) const {return BrakePos[FGLGear::bgLeft];} /** Gets the right brake. @return the right brake setting. */ - double GetRBrake(void) const {return RightBrake;} + double GetRBrake(void) const {return BrakePos[FGLGear::bgRight];} /** Gets the center brake. @return the center brake setting. */ - double GetCBrake(void) const {return CenterBrake;} + double GetCBrake(void) const {return BrakePos[FGLGear::bgCenter];} //@} enum SystemType { stFCS, stSystem, stAutoPilot }; @@ -535,12 +556,16 @@ public: std::string FindSystemFullPathname(const std::string& system_filename); void AddThrottle(void); - void AddGear(void); + void AddGear(unsigned int NumGear); double GetDt(void); FGPropertyManager* GetPropertyManager(void) { return PropertyManager; } - void LateBind(void); + bool GetTrimStatus(void) const { return FDMExec->GetTrimStatus(); } + + struct Inputs { + unsigned int NumGear; + } in; private: double DaCmd, DeCmd, DrCmd, DsCmd, DfCmd, DsbCmd, DspCmd; @@ -557,6 +582,7 @@ private: std::vector PropFeather; std::vector SteerPosDeg; double LeftBrake, RightBrake, CenterBrake; // Brake settings + vector BrakePos; // left, center, right - defined by FGLGear:: enum double GearCmd,GearPos; double TailhookPos, WingFoldPos;