1
0
Fork 0
Commit graph

374 commits

Author SHA1 Message Date
James Turner
0f61108f5b Break FlightPlan out into its own file. 2012-05-12 10:25:56 +01:00
James Turner
b0384d035f Remove remaining includes of simgear/waypoint 2012-05-11 23:49:12 +01:00
James Turner
79391f818c Remove stale includes, use local ground-speed property. 2012-05-11 17:07:21 +01:00
James Turner
ec4f2f59c9 Airways routing is driven via Nasal now. 2012-05-09 09:39:33 +01:00
James Turner
ea2c73e8b5 Expose airways via Nasal, and allow waypoint creation and deletion via Nasal too. 2012-05-08 21:06:28 +01:00
James Turner
ff91fec1bb Fix various route-manager issues reported by Hyde. 2012-05-07 23:48:56 +01:00
James Turner
b092987656 Fix SID class ambiguity on Windows (clashes with winnt.h) 2012-05-07 00:59:28 +01:00
James Turner
1b7b69b498 Create a real FlightPlan (and Leg) class
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.
2012-05-07 00:35:48 +01:00
ThorstenB
b9260f543b Ganael Laplanche: fix include dependencies for FreeBSD support 2012-05-05 01:08:20 +02:00
ThorstenB
e59fabaf82 Clean-up some SGMath dependencies. 2012-05-05 00:56:29 +02:00
ThorstenB
5683467d34 Abstract AP implementation base classes need a virtual destructor
(SGReferenced doesn't provide it)
2012-04-25 23:11:45 +02:00
James Turner
76efc104c0 Route-manager distance helpers for Hyde and others working on VNAV support. 2012-04-09 14:06:44 +01:00
Torsten Dreyer
68e1a8c4cb Autopilot: save loads of CPU cycles
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
2012-04-05 20:40:07 +02:00
James Turner
f0bf3ed841 Fix total-distance computation in the route-manager, and expose some additional values - departure and arrival field elevation, and total distance along the route of a waypoint. (Addresses some feature requests) 2012-03-27 21:54:38 +01:00
ThorstenB
bb59af4357 Fix segfault when loading routes in RouteManager
FGRouteMgr::loadRoute always needs to call "update_mirror" before
returning.
2012-03-07 21:33:08 +01:00
Torsten Dreyer
644bb8c4f4 Spring-cleaning: some minor optimization
- 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
2012-03-06 22:28:18 +01:00
Torsten Dreyer
ed934c1999 Some xml-autopilot tuning
- Add update-interval-secs to the entire autopilot
- cache min/max values in InputValue
- a little more relaxed "equals zero" checking in the NoiseSpikeFilter
2012-02-15 14:59:10 +01:00
Torsten Dreyer
5ebdcdc3d5 Some autopilot works
- 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
2012-02-12 11:41:21 +01:00
ThorstenB
4e9e35a0a2 #609 route manager/nav display related startup segfault
Immediately update the property-tree mirror when adding waypoints (i.e.
using the "--flight-plan=..." startup option).
2012-01-22 11:23:56 +01:00
James Turner
fdbdbfe93d When clearing the route, skip generated waypoints. 2012-01-08 19:31:07 +00:00
James Turner
70b4f38ebc Goodbye automake. 2011-11-01 11:15:53 +00:00
Torsten Dreyer
1a80d70e00 Some autopilot fixes
- fix minor memory leak
- make autopilots addable and removeable at runtime
2011-10-27 08:27:52 +02:00
James Turner
2157164271 Fix some code which clang didn't like 2011-10-23 15:33:00 +01:00
James Turner
b1b4b7ecf4 Fix (nearly) all the std:: namespace violations in headers, in preparation for fixing SGsmplstat.hxx to *not* do a 'using namespace std'. 2011-10-17 17:41:59 +01:00
James Turner
563614f36c Expose route-manager WP mirror nodes on the API 2011-09-19 11:38:35 +01:00
James Turner
af6ed2ff3a Expose departure+arrival airport + runway on route-manager. 2011-09-19 11:38:35 +01:00
Torsten Dreyer
4599893fa9 fix #416: reciprocal filter broken 2011-08-25 22:25:20 +02:00
Curtis L. Olson
a5de08e240 Fix a couple issues with non-referenced files missing from the source
distribution (and thus breaking the build.)
2011-08-15 22:50:39 -05:00
James Turner
6c52a5ac85 Fixes for include-file flattening - condition.hxx no longer pulls in props or props_io 2011-07-30 10:47:28 +01:00
James Turner
7abf7c5748 CMake header support for XCode/Visual Studio 2011-07-19 07:58:03 +01:00
ThorstenB
eb3f135985 #367: Add visible error messages when flight plan file isn't found/readable 2011-07-07 08:44:09 +02:00
ThorstenB
b839e8c3ac #367: raise log level for some routemanager error messages
When flightplans cannot be loaded (i.e. --flight-plan command-line
option fails), make sure the message is visible to the user with
default log level.
2011-07-06 22:33:19 +02:00
ThorstenB
4fd1e219a4 #348 related: More places where missing files were not reported properly
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.").
2011-07-03 13:06:41 +02:00
James Turner
2bdaebb7d9 Make basic route-manager commands be real SGCommands 2011-06-01 00:04:25 +01:00
James Turner
fe1bedad32 Make --flight-plan option delegate to the route-manager loadRoute code, and hence support XML flight-plans. 2011-05-25 08:21:45 +01:00
ThorstenB
7f846d20c7 Make route editing sane.
Drag&drop, insert and remove now update the current waypoint as expected.
2011-01-23 00:45:06 +01:00
James Turner
7cbb3a10ed Expand route-manager waypoint info, to support smarter FMS functions. 2011-01-20 00:39:42 +00:00
James Turner
54ef43878f Fix bug 259 - don't override existing airport/runway in initPos 2011-01-19 23:58:00 +00:00
Torsten Dreyer
2ba4f3ddad Autopilot: use SimGear function 2011-01-17 20:18:17 +01:00
James Turner
a91ec5f9f9 Initial work on CMake build files, with considerable help from Olaf Flebbe. 2010-12-19 15:06:04 +00:00
Torsten Dreyer
58fbd0d72a msvc warning fixes 2010-12-15 16:40:25 +01:00
ThorstenB
138449f4bd Avoid exceptions in route manager module.
Avoid segfaults in gps when route manager doesn't throw exceptions.
Minor fix when removing waypoints by negative index.
2010-12-05 21:26:51 +01:00
ThorstenB
d438a180ab Fix route manager exception and following crash (may fix #177)
See bug issue #177 for more.
Also fix minor compiler warning.
2010-11-27 20:05:28 +01:00
Torsten Dreyer
495a23a80a Avoid division by zero in exponential filters 2010-11-20 11:07:24 +01:00
Christian Schmitt
0a5e86f4e6 remove old .cvsignore files 2010-11-11 01:16:29 +01:00
Torsten Dreyer
c56aaa8771 add <initialize-to> to components
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
2010-11-02 11:07:33 +01:00
James Turner
d573cb43a0 Move three more subsystems into the init + update scheme - fixes some crashes found by papillion. 2010-10-22 16:44:37 +01:00
James Turner
fe16732783 Fix Win32 compilation - avoid SID name clash with windows.h 2010-10-20 13:13:05 +01:00
James Turner
dd2eec7bd8 Airways/procedures code - add new data structures to store waypoints and
procedures, and routing algorithms, and modify the GPS, route manager and
WaypointList to use the new objects.
2010-10-20 09:02:02 +01:00
Torsten Dreyer
9f9e86a61e remove leftover debugging stuff 2010-10-12 15:26:00 +02:00
Thorsten Brehm
a4f1139fcd Fixed autopilot/Predictor.
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.
2010-10-08 21:41:09 +02:00
Torsten Dreyer
9ffaf11aa5 Autopilot: fix initialization of digital filters 2010-10-05 14:29:36 +02:00
Torsten Dreyer
c41364983e fix double binding bug in autopilotgroup and naming error 2010-08-26 18:51:46 +02:00
Torsten Dreyer
fed62b13dd Downgrade two autopilot SG_LOG alerts to warnings 2010-08-25 20:43:43 +02:00
Torsten Dreyer
8a00bce145 property-rules might be read from fg-root 2010-08-23 22:27:39 +02:00
Torsten Dreyer
54e6757211 Autopilot is more than just an autopilot: Introducing: "property rule"
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.
2010-08-18 18:50:07 +02:00
James Turner
ab495d1370 Add --fg-aircraft option, and aircraft dir path list. Partial support in places that load files, for respecting the setting.
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.
2010-07-28 22:03:10 +01:00
Torsten Dreyer
ff408dc540 (Re)allow duplicate names for A/P stages
Don't ignore autpilot stages with duplicate names but rename
the dups to a unique name by adding '_' plus a sequence number.
2010-07-24 17:17:33 +02:00
Torsten Dreyer
c3b9676e22 One more try to fix the Windows build 2010-06-29 17:42:04 +02:00
Torsten Dreyer
598d46529f Fix three bugs in the new autopilot code
- 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
2010-06-28 18:20:30 +02:00
Torsten Dreyer
bed15f5315 One more fix for a working windows build. 2010-06-28 13:53:17 +02:00
Torsten Dreyer
f6ea868804 Fix build on Windows
Add missing includes.
Thanks to Alan Teeder
2010-06-27 15:02:59 +02:00
James Turner
a0588272dc Merge branch 'topics/mainloop' into next 2010-06-26 15:30:00 +01:00
James Turner
85be9be1e0 Initial work on FDM shell, and removal of cur_fdm_state 2010-06-26 10:31:22 +01:00
Torsten Dreyer
610777ac53 Move the flipflop implementations into the correct namespace 2010-06-25 21:17:13 +02:00
Torsten Dreyer
0a50c16052 Some more src docs for the A/P implementation. 2010-06-25 21:09:37 +02:00
Torsten Dreyer
47c956b516 Some code documentation added to the A/P flip flop implementation 2010-06-25 11:06:00 +02:00
Torsten Dreyer
d558b52cb6 New autopilot subsystem implementation.
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.
2010-06-24 17:09:33 +02:00
Torsten Dreyer
8c15899837 Merge branch 'next' of gitorious.org:fg/flightgear into next 2010-06-01 22:10:00 +02:00
Torsten Dreyer
253b14a1cb Code cleanup, inherit JK, D and T from RS and a bugfix for the logic element
- 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
2010-06-01 22:08:42 +02:00
James Turner
be30c2d53b Merge branch 'topics/removeab' into next 2010-05-29 10:37:20 +01:00
James Turner
ad19acf1c6 Remove C++ autobrake code - this can all be done easier in XML now! 2010-05-29 10:36:23 +01:00
Torsten Dreyer
54c964aed5 Respect different behaviour of RS and SR flip flops
No more invalid states here.
According to IEC 61131, RS flip flop have dominant reset and SR have
dominant set. This is now implemented.
2010-05-27 22:22:01 +02:00
James Turner
321bbeb2e8 Allow 'property' as well as 'prop' to be used in XMLauto <enable> blocks. 2010-05-27 15:20:37 +01:00
James Turner
1d0e9d268a Support <expression> in autopilot inputs, as well as property and value. 2010-05-26 19:30:33 +01:00
Torsten Dreyer
9e35d18f2e Add RS, JK, D and T flip flops as components
Flip flops are useful items for data latches and can be used to implement
pushbuttons, glideslope locks etc.
Check http://en.wikipedia.org/wiki/Flip-flop_(electronics)
and http://wiki.flightgear.org/index.php/Autopilot_Configuration_Reference
for details
2010-05-24 11:57:55 +02:00
Tim Moore
4fae1160d4 Merge branch 'torsten/proplist' into next 2010-04-19 12:22:48 +02:00
Tim Moore
3e4a592282 Move using declaration out of header file 2010-04-19 12:22:30 +02:00
Tim Moore
0f9f092412 Merge branch 'torsten/proplist' into next 2010-04-19 10:20:13 +02:00
torsten
a464d1b2b2 use simgear::PropertyList instead of std::vector<SGPropertyNode_ptr> 2010-04-19 10:20:03 +02:00
Tim Moore
98e6b8212a Merge branch 'torsten/auto' 2010-04-19 10:19:42 +02:00
Tim Moore
323fb790e7 Merge branch 'jmt/gps' into next 2010-04-19 09:52:43 +02:00
jmt
8ffa65a821 Route-file saving. 2010-04-19 09:52:32 +02:00
jmt
3270a610f8 Support loading plain-text routes, and stop aggressively using the cruise altitude when loading waypoints. 2010-04-19 09:52:17 +02:00
Tim Moore
ebdeb3eed3 Merge branch 'jmt/gps' into next
Conflicts:
	src/Instrumentation/navradio.cxx
2010-03-28 15:32:59 +02:00
jmt
597df694e3 GPS/route-manager - notify listeners when current waypoint is changed. 2010-03-28 15:26:25 +02:00
Tim Moore
39def8132a Merge branch 'jmt/gpswidget' 2010-03-28 15:15:58 +02:00
Tim Moore
f71c094da2 Merge branch 'torsten/auto' into next 2010-03-20 18:46:27 +01:00
torsten
c55874d70e Fix broken anti windup if the proportional gain runs into the nonlinear area and gets clipped.
Also fix the wrong debug message.
2010-03-20 18:46:19 +01:00
Tim Moore
3973637606 Merge branch 'torsten/auto' into next 2010-03-11 09:01:42 +01:00
torsten
f4f784a514 Added anti windup for the pi-simple-controller 2010-03-11 09:01:25 +01:00
Tim Moore
cfd243bd95 Merge branch 'torsten/auto' into next 2010-03-09 10:38:43 +01:00
torsten
881d49858d Just a tiny change adds a <reference> input to FGDigitalFilters. This is nice to have to calculate differences of signals using gain-filters.
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.
2010-03-09 10:38:32 +01:00
Tim Moore
8b03f25e6c Merge branch 'torsten/auto' into next 2010-02-25 23:21:55 +01:00
torsten
90e313a8dd New feature: added <logic> "filters"
"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>
2010-02-25 23:21:41 +01:00
Tim Moore
de79ec4421 Merge branch 'jmt/gpswidget' into next 2010-02-21 22:26:29 +01:00
jmt
4468d785b5 GPS / route-manager: add new custom widget to display the waypoints list.
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.
2010-02-21 22:26:14 +01:00
jmt
301f3c5bd6 Quiet: reduce log-level of various things from INFO to DEBUG or BULK, and tune the categories/level of some specific messages.
Part of original commit that only applys to master branch.
2010-02-17 07:44:26 +01:00
Tim Moore
3e0489bd91 Merge branch 'torsten/auto' 2010-02-10 00:41:44 +01:00
Tim Moore
edd83dd7e8 Merge branch 'jmt/units-fix' into maint 2010-02-09 07:28:03 +01:00