Convert the route-manager to use a flight-plan internally, and expose
flightplan, leg and procedure data to Nasal. Move the Level-D parser
into its own file.
Not every xml-autopilot filter needs to run at the update rate
of the FDM. This only makes sense for the autpilot filters. Those,
who update instrument needles or environment properties for example
may run at frame rate.
This patch (thanks to ThorstenB, who is the author) forces those
filters defined in /sim/systems/autopilot into the FDM loop and those
defined in /sim/systems/property-rule into the default loop. They
show up as xml-autopilot and xml-proprules in the performance monitor
- initialize uninitialized properties
- use prefix instead of postfix increments
- reduce visibility of variables
- use empty() instead of size() == 0 for vector and string
- pass string by reference, not by value
- Add update-interval-secs to the entire autopilot
- cache min/max values in InputValue
- a little more relaxed "equals zero" checking in the NoiseSpikeFilter
- add new <update-interval-secs> for autopilot components.
This does what it says.
- add new method to PeriodicalValue to normalize symmetric around zero
- move the DigitalFilterImplementation out of the header file
- refactor NoiseSpikeFilter: spare some cpu-cycles and respect periodical
output
Whenever resolving a (relative) path to an absolute path with
'resolve_maybe_aircraft_path', check if the result is empty and report original
(relative) path as missing. Otherwise no or a meaningless message is
issued ("File '' not found.").
The tag <initialize-to> can be used to control the value
of the output when the component is first enabled. This
controls initialization of the output property and the current
value for internal computation
Valid values are
<initialize-to>input</initialize-to>
set the output-property to the input value
<initialize-to>output</initialize-to>
set the output-property to the output value
<initialize-to>none</initialize-to>
ignore input and output value
Signature of Predictor::configure must match AnalogComponent::configure,
otherwise the inherited method isn't overridden.
=> predictor couldn't be configured.
=> speed predictor rules in "generic-autopilot-helper.xml" weren't working.
The autopilot has grown beyond being just an autopilot. It's
components, filters and controllers could be used to set property
values based on complex rules and driven from other property values.
That's why I chose to give it the name "property-rule".
This patch allows to define an arbitrary number of property rules under
a/sim/property-rule[n]/path
using the same syntax as autopilot configurations.
Add helper to look for an aircraft branch path in multiple candidate locations.
Update the main subsystems to use the helper, and hence load from any aircraft dir.
- Respect the global inverted flag in the get_output() method
- Check the clock state before processing the static R/S inputs
- Emit debug output only on a state change
Split the former single-file-implementation in xmlauto.?xx into multiple
files and use some OO techniques. Started with documentation to be used
with doxygen.
- reuse code
- undeclared inputs default to false where applicable
- remove unused tInput
- JK, D and T FF now inherit from RS with dominant R input, so they all
have a R and a S input to preset the output
- fix the nonfunctional <inverted> element of the logic element
Old calculation was
output = input * gain
and is now
output = (input-reference) * gain
Note: the PI(D) controller use (reference-input) which effectively reverses the sign. Our notation was picked for backwards compatibility to not break the myriads of <filter> elements currently existing.
All the rest is some code cleanup.
"logic filters" use well known conditions to drive output properties. Example for bax = baz & (foo | bar).
<logic>
<name>my first logic element</name>
<input>
<or>
<property>foo</property>
<property>bar</property>
</or>
<property>baz</property>
</input>
<output>bax</output>
</logic>
Supports various new editing features, including dragging to re-order, and
+/- keys to adjust the target altitude for a waypoint. Also displays some
additional information, and will display *even* more once I land airways/
SID/STAR support.