133 while (property_element) {
134 string property_str = property_element->
GetDataLine();
137 cerr << property_element->
ReadFrom()
138 <<
fgred <<
highint << endl <<
" No property by the name "
139 << property_str <<
" has been defined. This property will " << endl
140 <<
" not be logged. You should check your configuration file."
149 cerr << property_element->
ReadFrom()
151 << function_str <<
" has been defined. This property will "
152 <<
"not be logged. You should check your configuration file."
167 double outRate = 1.0;
206 rtHz = rtHz>1000?1000:(rtHz<0?0:rtHz);
227 for (
auto prop: outputProperties)
274 cout <<
" - " << param->GetName() << endl;
278 if (from == 0) cout <<
"Instantiated: FGOutputType" << endl;
279 if (from == 1) cout <<
"Destroyed: FGOutputType" << endl;
std::string ReadFrom(void) const
Return a string that contains a description of the location where the current XML element was read fr...
double GetAttributeValueAsNumber(const std::string &key)
Retrieves an attribute value as a double precision real number.
std::string FindElementValue(const std::string &el="")
Searches for the named element and returns the string data belonging to it.
std::string GetDataLine(unsigned int i=0)
Gets a line of data belonging to an element.
bool HasAttribute(const std::string &key)
Determines if an element has the supplied attribute.
std::string GetAttributeValue(const std::string &key)
Retrieves an attribute.
Element * FindElement(const std::string &el="")
Searches for a specified element.
Element * FindNextElement(const std::string &el="")
Searches for the next element as specified.
Represents a property value on which a function is applied.
static char highint[5]
highlights text
static char reset[5]
resets text properties
static char fgred[6]
red text
static std::string CreateIndexedPropertyName(const std::string &Property, int index)
void RunPostFunctions(void)
void RunPreFunctions(void)
FGPropertyManager * PropertyManager
bool InitModel(void) override
void SetRate(unsigned int tt)
Set the ouput rate for the model in frames.
FGModel(FGFDMExec *)
Constructor.
virtual bool Run(bool Holding)
Runs the model; called by the Executive.
@ ssGroundReactions
Subsystem: Ground Reactions (= 1024)
@ ssMoments
Subsystem: Moments (= 32)
@ ssPropagate
Subsystem: Propagate (= 512)
@ ssPropulsion
Subsystem: Propulsion (= 4096)
@ ssSimulation
Subsystem: Simulation (= 1)
@ ssForces
Subsystem: Forces (= 16)
@ ssAerosurfaces
Subsystem: Aerosurfaces (= 2)
@ ssMassProps
Subsystem: Mass Properties (= 128)
@ ssFCS
Subsystem: FCS (= 2048)
@ ssRates
Subsystem: Body rates (= 4)
@ ssAtmosphere
Subsystem: Atmosphere (= 64)
@ ssAeroFunctions
Subsystem: Coefficients (= 256)
@ ssVelocities
Subsystem: Velocities (= 8)
FGGroundReactions * GroundReactions
std::vector< FGPropertyValue * > OutputParameters
void Disable(void)
Disables the output generation.
FGAccelerations * Accelerations
FGPropulsion * Propulsion
void SetOutputProperties(std::vector< FGPropertyNode_ptr > &outputProperties)
Set the list of properties that should be output for this output instance.
FGOutputType(FGFDMExec *fdmex)
Constructor (implement the FGModel interface).
FGExternalReactions * ExternalReactions
void SetIdx(unsigned int idx)
Set the idx for this output instance.
FGAtmosphere * Atmosphere
~FGOutputType() override
Destructor.
bool Run(void)
Executes the output directives (implement the FGModel interface).
void SetRateHz(double rtHz)
Set the output rate for this output instances.
FGMassBalance * MassBalance
std::vector< std::string > OutputCaptions
bool Load(Element *el) override
Init the output directives from an XML file (implement the FGModel interface).
FGAerodynamics * Aerodynamics
void Debug(int from) override
virtual void Print(void)=0
Generate the output.
double GetRateHz(void) const
Get the output rate in Hz for this output.
bool InitModel(void) override
Init the output model according to its configitation.
FGBuoyantForces * BuoyantForces
void Enable(void)
Enables the output generation.
Class wrapper for property handling.
Represents a property value which can use late binding.