Merge branch 'next' of git://gitorious.org/fg/flightgear into next
This commit is contained in:
commit
ef88e1f41a
7 changed files with 30 additions and 17 deletions
|
@ -358,9 +358,9 @@ FGAIManager::loadScenarioFile(const std::string& filename)
|
||||||
SGPropertyNode_ptr root = new SGPropertyNode;
|
SGPropertyNode_ptr root = new SGPropertyNode;
|
||||||
readProperties(path.str(), root);
|
readProperties(path.str(), root);
|
||||||
return root;
|
return root;
|
||||||
} catch (const sg_exception &) {
|
} catch (const sg_exception &t) {
|
||||||
SG_LOG(SG_GENERAL, SG_DEBUG, "Incorrect path specified for AI "
|
SG_LOG(SG_GENERAL, SG_ALERT, "Failed to load scenario '"
|
||||||
"scenario: \"" << path.str() << "\"");
|
<< path.str() << "': " << t.getFormattedMessage());
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -43,7 +43,7 @@ using namespace std;
|
||||||
|
|
||||||
namespace JSBSim {
|
namespace JSBSim {
|
||||||
|
|
||||||
static const char *IdSrc = "$Id: FGActuator.cpp,v 1.20 2011/06/18 17:46:21 bcoconni Exp $";
|
static const char *IdSrc = "$Id: FGActuator.cpp,v 1.21 2011/06/30 03:16:10 jentron Exp $";
|
||||||
static const char *IdHdr = ID_ACTUATOR;
|
static const char *IdHdr = ID_ACTUATOR;
|
||||||
|
|
||||||
/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||||
|
@ -114,13 +114,16 @@ bool FGActuator::Run(void )
|
||||||
// the Input will be further processed and the eventual Output
|
// the Input will be further processed and the eventual Output
|
||||||
// will be overwritten from this perfect value.
|
// will be overwritten from this perfect value.
|
||||||
|
|
||||||
|
if (fail_stuck) {
|
||||||
|
Output = PreviousOutput;
|
||||||
|
} else {
|
||||||
if (lag != 0.0) Lag(); // models actuator lag
|
if (lag != 0.0) Lag(); // models actuator lag
|
||||||
if (rate_limit != 0) RateLimit(); // limit the actuator rate
|
if (rate_limit != 0) RateLimit(); // limit the actuator rate
|
||||||
if (deadband_width != 0.0) Deadband();
|
if (deadband_width != 0.0) Deadband();
|
||||||
if (hysteresis_width != 0.0) Hysteresis();
|
if (hysteresis_width != 0.0) Hysteresis();
|
||||||
if (bias != 0.0) Bias(); // models a finite bias
|
if (bias != 0.0) Bias(); // models a finite bias
|
||||||
|
}
|
||||||
|
|
||||||
if (fail_stuck) Output = PreviousOutput;
|
|
||||||
PreviousOutput = Output; // previous value needed for "stuck" malfunction
|
PreviousOutput = Output; // previous value needed for "stuck" malfunction
|
||||||
|
|
||||||
Clip();
|
Clip();
|
||||||
|
|
|
@ -48,7 +48,7 @@ using namespace std;
|
||||||
|
|
||||||
namespace JSBSim {
|
namespace JSBSim {
|
||||||
|
|
||||||
static const char *IdSrc = "$Id: FGFCSComponent.cpp,v 1.32 2011/06/16 03:39:38 jberndt Exp $";
|
static const char *IdSrc = "$Id: FGFCSComponent.cpp,v 1.33 2011/06/21 04:41:54 jberndt Exp $";
|
||||||
static const char *IdHdr = ID_FCSCOMPONENT;
|
static const char *IdHdr = ID_FCSCOMPONENT;
|
||||||
|
|
||||||
/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||||
|
@ -163,7 +163,7 @@ FGFCSComponent::FGFCSComponent(FGFCS* _fcs, Element* element) : fcs(_fcs)
|
||||||
delay = (unsigned int)(delay_time / dt);
|
delay = (unsigned int)(delay_time / dt);
|
||||||
}
|
}
|
||||||
output_array.resize(delay);
|
output_array.resize(delay);
|
||||||
for (int i=0; i<delay; i++) output_array[i] = 0.0;
|
for (unsigned int i=0; i<delay; i++) output_array[i] = 0.0;
|
||||||
}
|
}
|
||||||
|
|
||||||
clip_el = element->FindElement("clipto");
|
clip_el = element->FindElement("clipto");
|
||||||
|
|
|
@ -48,7 +48,7 @@ using namespace std;
|
||||||
|
|
||||||
namespace JSBSim {
|
namespace JSBSim {
|
||||||
|
|
||||||
static const char *IdSrc = "$Id: FGTank.cpp,v 1.29 2011/06/06 22:39:52 jentron Exp $";
|
static const char *IdSrc = "$Id: FGTank.cpp,v 1.30 2011/06/21 04:41:54 jberndt Exp $";
|
||||||
static const char *IdHdr = ID_TANK;
|
static const char *IdHdr = ID_TANK;
|
||||||
|
|
||||||
/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||||
|
@ -101,7 +101,7 @@ FGTank::FGTank(FGFDMExec* exec, Element* el, int tank_number)
|
||||||
if (el->FindElement("standpipe"))
|
if (el->FindElement("standpipe"))
|
||||||
InitialStandpipe = Standpipe = el->FindElementValueAsNumberConvertTo("standpipe", "LBS");
|
InitialStandpipe = Standpipe = el->FindElementValueAsNumberConvertTo("standpipe", "LBS");
|
||||||
if (el->FindElement("priority"))
|
if (el->FindElement("priority"))
|
||||||
InitialPriority = Priority = el->FindElementValueAsNumber("priority");
|
InitialPriority = Priority = (int)el->FindElementValueAsNumber("priority");
|
||||||
if (el->FindElement("density"))
|
if (el->FindElement("density"))
|
||||||
Density = el->FindElementValueAsNumberConvertTo("density", "LBS/GAL");
|
Density = el->FindElementValueAsNumberConvertTo("density", "LBS/GAL");
|
||||||
if (el->FindElement("type"))
|
if (el->FindElement("type"))
|
||||||
|
|
|
@ -917,7 +917,7 @@ public:
|
||||||
virtual bool pass(FGPositioned* aPos) const {
|
virtual bool pass(FGPositioned* aPos) const {
|
||||||
if (_fixes && (aPos->type() == FGPositioned::FIX)) {
|
if (_fixes && (aPos->type() == FGPositioned::FIX)) {
|
||||||
// ignore fixes which end in digits - expirmental
|
// ignore fixes which end in digits - expirmental
|
||||||
if (isdigit(aPos->ident()[3]) && isdigit(aPos->ident()[4])) {
|
if (aPos->ident().length() > 4 && isdigit(aPos->ident()[3]) && isdigit(aPos->ident()[4])) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -115,7 +115,7 @@ HeadingIndicatorDG::update (double dt)
|
||||||
// Next, calculate time-based precession
|
// Next, calculate time-based precession
|
||||||
double offset = _offset_node->getDoubleValue();
|
double offset = _offset_node->getDoubleValue();
|
||||||
offset -= dt * (0.25 / 60.0); // 360deg/day
|
offset -= dt * (0.25 / 60.0); // 360deg/day
|
||||||
SG_NORMALIZE_RANGE(offset, -360.0, 360.0);
|
offset = SGMiscd::normalizePeriodic(-360.0,360.0,offset);
|
||||||
_offset_node->setDoubleValue(offset);
|
_offset_node->setDoubleValue(offset);
|
||||||
|
|
||||||
// No magvar - set the alignment manually
|
// No magvar - set the alignment manually
|
||||||
|
@ -153,7 +153,7 @@ HeadingIndicatorDG::update (double dt)
|
||||||
_last_heading_deg = heading;
|
_last_heading_deg = heading;
|
||||||
|
|
||||||
heading += offset + align + error;
|
heading += offset + align + error;
|
||||||
SG_NORMALIZE_RANGE(heading, 0.0, 360.0);
|
heading = SGMiscd::normalizePeriodic(0.0,360.0,heading);
|
||||||
|
|
||||||
_heading_out_node->setDoubleValue(heading);
|
_heading_out_node->setDoubleValue(heading);
|
||||||
|
|
||||||
|
|
|
@ -1167,6 +1167,15 @@ fgOptScenario( const char *arg )
|
||||||
return FG_OPTIONS_OK;
|
return FG_OPTIONS_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int
|
||||||
|
fgOptNoScenarios( const char *arg )
|
||||||
|
{
|
||||||
|
SGPropertyNode_ptr ai_node = fgGetNode( "/sim/ai", true );
|
||||||
|
ai_node->removeChildren("scenario",false);
|
||||||
|
ai_node->setBoolValue( "enabled", false );
|
||||||
|
return FG_OPTIONS_OK;
|
||||||
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
fgOptRunway( const char *arg )
|
fgOptRunway( const char *arg )
|
||||||
{
|
{
|
||||||
|
@ -1465,6 +1474,7 @@ struct OptionDesc {
|
||||||
{"min-status", true, OPTION_STRING, "/sim/aircraft-min-status", false, "all", 0 },
|
{"min-status", true, OPTION_STRING, "/sim/aircraft-min-status", false, "all", 0 },
|
||||||
{"livery", true, OPTION_FUNC, "", false, "", fgOptLivery },
|
{"livery", true, OPTION_FUNC, "", false, "", fgOptLivery },
|
||||||
{"ai-scenario", true, OPTION_FUNC, "", false, "", fgOptScenario },
|
{"ai-scenario", true, OPTION_FUNC, "", false, "", fgOptScenario },
|
||||||
|
{"disable-ai-scenarios", false, OPTION_FUNC, "", false, "", fgOptNoScenarios},
|
||||||
{"parking-id", true, OPTION_FUNC, "", false, "", fgOptParking },
|
{"parking-id", true, OPTION_FUNC, "", false, "", fgOptParking },
|
||||||
{"version", false, OPTION_FUNC, "", false, "", fgOptVersion },
|
{"version", false, OPTION_FUNC, "", false, "", fgOptVersion },
|
||||||
{"enable-fpe", false, OPTION_FUNC, "", false, "", fgOptFpe},
|
{"enable-fpe", false, OPTION_FUNC, "", false, "", fgOptFpe},
|
||||||
|
|
Loading…
Add table
Reference in a new issue