1
0
Fork 0
Commit graph

10900 commits

Author SHA1 Message Date
Edward d'Auvergne
0f0361efb8 Options::setupRoot: Removal of the logic that fg_root is currently not set.
This allows the test suite to preset fg_root using its own bootstrapping logic.
2019-11-08 13:59:16 +01:00
Julian Smith
f4fcf43ffa src/Environment/metarproperties.cxx: better formatting for METAR description.
Pass tabstops=-1 to getDescription() makes it use single space for tabs, which
gives better output when used with proportional font.
2019-11-06 19:56:30 +00:00
Erik Hofman
9644966dfd Also add pressure to the mix 2019-11-04 15:19:10 +01:00
Erik Hofman
c739d47793 Parse the current temperature and humidity to the sound code for proper sound velocity and distance attenuation (with ditance based frequency response filtering). AeonWave only. 2019-11-04 14:57:43 +01:00
Julian Smith
88644185b3 src/Main/metar_main.cxx: added -s option to decode explicit METAR string without contacting server. 2019-10-31 22:53:41 +00:00
Julian Smith
4b1cfbc5ed src/Main/metar_main.cxx: use SGMetar::getDescription(). 2019-10-31 22:49:09 +00:00
Julian Smith
191f53ff5e src/Environment/metarproperties.*: put human-readable metar description into properties.
We set /environment/metar/description to human-readable description of metar,
for use by fgdata's weather dialogue, using simgear FGMetar's new description()
method.
2019-10-31 16:50:01 +00:00
James Turner
68a72f22f2 Fix a copy-paste-bug in a Nasal error 2019-10-20 13:08:47 +01:00
James Turner
26b9cce6a3 Quiet false-positive tied-listener warnings
Use a new SGPropertyNode flag, LISTENER_SAFE, to white-list properties
where we do correctly fire listeners, and test this flag when listening
from Nasal, to avoid the warning.
2019-10-20 13:08:47 +01:00
James Turner
a18dda21ef Fix a GCC warning: catching exception by value 2019-10-20 13:08:47 +01:00
James Turner
3bb7a25580 Merge /u/daniel-me/flightgear/ branch pg-fix2 into next
https://sourceforge.net/p/flightgear/flightgear/merge-requests/180/
2019-10-19 11:12:34 +00:00
James Turner
0e082d5c46 Tweaking macOS HID code to avoid a Catalina crash
Not certain what’s going on here, this is testing a theory that
deleting a HID queue which has never been started, might behave badly.
2019-10-17 00:01:59 +01:00
James Turner
45fbdaa9c9 Starting tests for RNAV/procedures
One test so far, attempting to reproduce a bug I see with the 737.

Note these tests are skipped unless you have procedures available
and set a magic env var to find them.
2019-10-16 23:28:52 +01:00
Daniel Meissner
315d38566e YASim: Fix to the Prandtl/Glauert and Wavedrag features. Simplifies the model and resolves NaNs and sim crashes in supersonic flight 2019-10-16 22:59:16 +02:00
Bertrand Coconnier
73b7e94358 [JSBSim] Bug fixes
* Functions <random/> and <urandom/> are no longer considered constant.
* <clipto type="cyclic"> now clips negatives values correctly.
2019-10-13 14:18:09 +02:00
James Turner
18c19885c6 Improvements to Nasal hold API
Ensure changes from Nasal are picked up by delegates (such as GPS) when
they are made. Add a route-manager test which sets and exits a hold
using Nasal.

As part of this, update the test API to make it easy to run Nasal from
a test.
2019-09-24 11:29:05 +01:00
James Turner
12cccf043a Nasal interface to hold waypoints 2019-09-23 23:01:12 +01:00
James Turner
5ce8a942bf RNAV / GPS hold support
The GPS/RNAV system can now fly holds, both left and right-handed.
The correct entry is selected, and hold count can be selected.
Also there's lots of lovely test cases.
2019-09-23 23:01:12 +01:00
James Turner
15c101efe4 GPS detects being repositioned
Avoid screwing up the derived / trend data when we are repositioned;
detect instantaneous position changes and don’t update the trend
data in this case.
2019-09-23 23:01:12 +01:00
James Turner
45df8f51b2 Move GPS sequencing into Nasal (optionally)
GPS now lets the delegate handle the sequencing behaviour, by
setting a new config property. The default GPS delegate (in Nasal)
now sets this property.

This requires a corresponding FGData update.
2019-09-20 13:05:57 +01:00
James Turner
833cc61293 GPS intercept tests 2019-09-20 09:50:55 +01:00
James Turner
2434c037c8 Improve Leg mode course/track computation 2019-09-19 17:27:13 +01:00
James Turner
2fe91430a3 Fix direct-to course -deviation sign 2019-09-18 23:42:39 +01:00
James Turner
2d89cb2390 Nasal: Log names of stranded persistent timers 2019-09-18 23:42:39 +01:00
James Turner
dbbebc8f7e Tolerate missing scenery (happens in unit tests) 2019-09-18 23:42:39 +01:00
James Turner
810d2e0b13 Set default GPS overflight sequence distance 2019-09-18 23:42:39 +01:00
James Turner
30b8bdc081 Fix warnings from newer Clang 2019-09-18 23:42:39 +01:00
James Turner
317e9f8cc0 Fix some GPS issues discovered while testing
- set wp[1] properties immediately (don’t require an update cycle)
 - direct-to course-error is correct when init-ing the Direct-To; it
   was previously wrong when beginning the DTO, due to invalid course
   between identical SGGeods.
2019-09-18 23:42:38 +01:00
James Turner
12ac14be0e Change a warning level 2019-09-18 23:42:38 +01:00
James Turner
492707a756 Flightplan-nasal alias a name for readability 2019-09-18 23:42:38 +01:00
James Turner
3b34158998 Fix member/local var mismatch in RNAV code 2019-09-18 23:40:36 +01:00
James Turner
a3e66d1ae3 Fix GPS ident overflow bug 2019-09-18 23:40:36 +01:00
James Turner
e15d67e637 TestPilot helper in the test API
Use this in the GPS tests.
2019-09-18 23:40:36 +01:00
Scott Giese
8120dcb4c9 Fix compile issue on Win10 VS2019 2019-09-16 23:33:28 -05:00
Daniel Meissner
44e1f43e91 YaSim: add compressibility effects (Prandtl/Glauert correction factor on surface elements and
FlowRegime to wing definitions). (Daniel)
//amended according to James hints: change initializer to float constants, fix indention issues, add Math::polynomial and use it in Surface. (Henning)
2019-09-06 16:11:10 +02:00
Julian Smith
335547160c src/Main/fg_init.cxx: use /sim/log-file-line to control output of file:line in logs.
We call sglog().setFileLine() in response to changes to /sim/log-file-line.
2019-09-04 10:55:43 +01:00
Julian Smith
10414fada4 src/GUI/new_gui.cxx: NewGUI::setStyle(): remove old nodes before copying across new style.
Previously old nodes that weren't in the new style, would be left in place,
leading to a confusing mix of styles sometimes.
2019-09-04 10:55:43 +01:00
Julian Smith
f3d1135320 Various fixes for building on OpenBSD. 2019-09-04 10:55:43 +01:00
Julian Smith
331ef3232f src/Input/FGEventInput.cxx: FGEventInput::AddDevice(): fix incorrect use after delete.
Moved delete of inputDevice to after its use in a SG_LOG diagnostic.
2019-08-31 14:19:16 +01:00
xDraconian
6ce33fcb5c Merge /u/ferranobon/flightgear/ branch next into next
https://sourceforge.net/p/flightgear/flightgear/merge-requests/171/
2019-08-28 02:52:57 +00:00
legoboyvdlp R
eafe5dadc0 Modify the update rate of the closest airport with METAR to 10 seconds. 2019-08-27 20:42:23 +01:00
Scott Giese
1ede51f3f6 Improved OSG Version detection. 2019-08-26 17:45:16 -05:00
Bertrand Coconnier
4f5f0f63fd [JSBSim] <table> independent vars are now late bounded.
The existence of the property that is used for <table> independent vars is now checked during execution rather than when the XML definition is parsed. This relaxes the order in which filters, table and more generally flight controls need to be declared in the XML definition files.
2019-08-17 13:58:31 +02:00
Julian Smith
47eda6e539 src/Viewer/viewmgr.cxx:FGViewMgr::FGViewMgr(): avoid possible SEGV in previous commit.
It seems that sometimes /sim/current-view/view-number doesn't yet exist.
2019-08-14 16:00:44 +01:00
Julian Smith
f71624e170 src/Viewer/viewmgr.cxx: allow aircraft to set initial view number.
E.g. fgaddon/Aircraft/Icaro_MRX13/Icaro_Laminar_13_MRX-set.xml sets
/sim/current-view/view-number to 9.

It seems that recent View changes broke this, but this fix is in unchanged
code.
2019-08-14 11:07:32 +01:00
Richard Harrison
fa0fb9bc06 Merge /u/cgdae/flightgear/ branch next into next
https://sourceforge.net/p/flightgear/flightgear/merge-requests/173/
2019-08-13 03:56:33 +00:00
Julian Smith
e6cfb56de0 src/Viewer/view.cxx: fix for regression in handling of /sim/current-view/?-offset-m.
Prior to the recent multiplayer view changes, /sim/current-view/?-offset-m
contained the current view's offsets from /sim/view[]/config/?-offset-m. The
multiplayer view changes modified things to set /sim/current-view/?-offset-m
to zeros, and instead use /sim/view[]/config/?-offset-m. This was so
that multiplayer views could be implemented simply by prefixing with
/ai/models/multiplayer[]/set/ to get the right offsets.

We still added in /sim/current-view/?-offset-m, but these were usually zero.

However some aircraft write to /sim/current-view/?-offset-m, and assume that
values must include the /sim/view[]/config/?-offset-m. E.g. the spaceshuttle
does this in order to simulate SRB shaking. This results in the offset being
included twice, which breaks things.

So this commit restores the original handling of /sim/current-view/?-offset-m
by doing an additional subtraction of /sim/view[]/config/?-offset-m. It also
avoids resetting /sim/current-view/?-offset-m to zeros when the view changes.

This results in views working for user aircraft, user aircraft that do custom
view handling, and multiplayer aircraft.
2019-08-12 17:59:49 +01:00
Bertrand Coconnier
0b56397562 Sync'ed JSBSim
- [Backward compatibility breakage] Gyros are now measuring rotation rates instead of rotational accelerations. Gyros that measure rotational accelerations do not exist in the real world.
- Output properties of flight control elements are no longer tied. This saves a lot of spurious warning messages and allows direct references of the same properties among several flight controls.
- Water vapor in the atmosphere is now managed through its mass fraction rather than its partial pressure. The former being the physical quantity that is conserved when pressure and temperature vary.
- Check that there are at least 3 contacts before trying to trim on ground.
- ECEF to ECI frame conversion has been moved from FGLocation to FGPropagate and FGInitialConditions since not all FGLocation need to manage that.
- Gravity computations have been moved to FGInertial because it is where all the constants to compute gravity are stored. This reduces the amount of data transmitted between FGInertial and FGAccelerations.
- Added optional transmission of the simulation time for FG UDP interface
- Code cleanup and use more C++11 idioms (override, constexpr, range-based for loop, etc.)
2019-08-10 13:10:28 +02:00
Julian Smith
377d1c9464 src/Viewer/view.cxx: improved zooming in Tower View AGL.
We now keep the aircraft in view when zooming, sacrificing the view of the
ground. I.e. we move the bottom of the view upwards, while keeping the top of
the view unchanged.
2019-08-10 00:02:44 +01:00
Julian Smith
1facdee3f6 src/Viewer/view.cxx: In Tower View AGL, fixed handling of aircraft with no chase-distance.
Recent changes to ViewPropertyEvaluator mean that
ViewPropertyEvaluator::getDoubleValue() doesn't handle default values very
well, so we were ending up with chase-distance of zero, not the default -25,
leading to over-zooming.
2019-08-09 14:02:29 +01:00
Julian Smith
4f4a793f80 src/Environment/environment_mgr.cxx: update nearest tower more frequently.
Changed interval from 30s to 10s - it appears to take only around 0.1ms so this
seems ok and improves the user experience.

---------------------
2019-08-09 12:56:19 +01:00
Julian Smith
a89fbc40aa src/Viewer/view.*: avoid confusing zooming artifacts in Tower View AGL mode.
Un-caching of scenery appears to happen fairly often, and means that we fail
to find height of ground under aircraft, so we now go back to the last found
value instead of using zero.
2019-08-09 12:56:19 +01:00
Julian Smith
e3b3f40f0a src/Viewer/view.*: in Tower View etc, use tower nearest to the multiplayer aircraft. 2019-08-09 12:56:19 +01:00
Julian Smith
c2f542b085 src/Environment/environment_mgr.cxx: find nearest airport/tower to viewed multiplayer aircraft.
This allows Tower View etc to use nearest tower when vewing remote multiplayer
aircraft.

Also force an update of nearest airport whenever multiplayer view changes, to
reduce delay before Tower View works.
2019-08-09 12:55:24 +01:00
Julian Smith
da5fe03851 src/Viewer/ViewPropertyEvaluator.*: added support for dumping info about a single spec. 2019-08-08 11:31:44 +01:00
Julian Smith
83e98653c7 src/Viewer/view.cxx: fix fly-by view offset.
Need to treat /sim/view[]/config/root="" as "/".
2019-08-08 11:30:30 +01:00
Julian Smith
3b77ca4ce8 src/Viewer/view.: removed some now-unused code. 2019-08-08 11:30:12 +01:00
Ferran Obón Santacana
a0f47c151c Fix shadowing of static variable in ITM adiff() function 2019-08-07 16:02:45 +02:00
Julian Smith
af538746ac src/Viewer/viewmgr.cxx:FGViewMgr::setView(): don't call update(0).
This fixes transient view corruption when view is changed (e.g. by v or V).
2019-08-05 07:33:26 +01:00
Julian Smith
92c934f410 src/Viewer/ViewPropertyEvaluator.*: fixed bug with non-existent property nodes.
The fix is to call globals->get_props()->getNode with create=true, so that we
get to hear about changes to property nodes that do not currently exist.
2019-08-05 07:33:26 +01:00
Julian Smith
f00cfeaa02 src/Viewer/view.cxx: use /sim/current-view/view-number-raw.
Requires latest fgdata, and fixes problem with non-sequential view numbers,
e.g. on 777.
2019-08-05 07:33:26 +01:00
Torsten Dreyer
ca2072bf74 silence a warning (initialization order) 2019-08-01 17:34:11 +02:00
Torsten Dreyer
2ba77f7f73 ints can't be NULL 2019-08-01 17:29:12 +02:00
Torsten Dreyer
d34bcf0422 whitespace formatting issues. No functional change 2019-08-01 17:26:43 +02:00
Scott Giese
f55d7c3c37 [ViewPropertyEvaluator] assert does not compile. 2019-07-29 10:31:33 -05:00
Richard Harrison
e8a50475ec Mutiplayer: increase log level for potential problems;
This is partly experimental to see how often these occur; but also errors in MP packets should be more visible to the developer.
2019-07-29 14:33:45 +02:00
Julian Smith
d71f8daa86 Revert "src/MultiPlayer/multiplaymgr.cxx: don't overwrite /sim/multiplay/visibility-range-nm if already set."
This reverts commit 4a067e721f.
2019-07-27 15:42:17 +01:00
Julian Smith
f770dc1c50 src/Viewer/viewmgr.cxx: FGViewMgr::unbind(): call new ViewPropertyEvaluator::clear().
Frees all ViewPropertyEvaluator's SGPropertyNode_ptr's.
2019-07-27 08:47:28 +01:00
Julian Smith
dfb94c6cc6 src/Viewer/view.*: use new ViewPropertyEvaluator system.
Allows recently-modified multiplayer View code to run without overheads.
2019-07-27 08:47:28 +01:00
Julian Smith
bf29e469b0 src/Viewer/ViewPropertyEvaluator.*: added ViewPropertyEvaluator system.
Evaluates and caches nested properties.
2019-07-27 08:47:17 +01:00
Julian Smith
e778848dcb src/Viewer/view.cxx: fixed breakage of /sim/current-view/internal.
Breakage was introduced by the Tower AGL / multiplayer view changes.
2019-07-26 18:59:59 +01:00
Bertrand Coconnier
2fe0137e92 [JSBSim] Fixed a actuator SEGFAULT when triggering "hardover" without specifying <clipto>. 2019-07-24 23:15:40 +02:00
Julian Smith
f666a551b3 src/Viewer/view.cxx: Fix bad initialisation of SGVec3d's.
SGVec3d's default constructor leaves the fields uninitialised, which seems to
sometimes break fg with lots of NaN-related diagnostics.

The fix is to use SGVec3d::zeros() instead.

Also call resetOffsetsAndFOV() from the View::View() constructor, to ensure
that things are set up consistently.
2019-07-22 14:05:54 +01:00
Julian Smith
9a67910899 src/MultiPlayer/multiplaymgr.cxx: don't create view 8.
View 8 used to be new Tower View AGL view, but this interfered with hard-coded
aircraft view numbers. So fgdata now has removed Model View, meaning Tower
View AGL uses Model View's old number (7), which keeps sequential view numbers
unchanged.
2019-07-20 22:04:35 +01:00
James Turner
ed0a009224 Merge /u/cgdae/flightgear/ branch next into next
https://sourceforge.net/p/flightgear/flightgear/merge-requests/166/
2019-07-18 20:21:36 +00:00
James Turner
f643100dad Avoid a warning when inserting nil into a FP
This avoids the warning when procedure construction fails, and we have
a nil result rather than an empty vector as the arg.
2019-07-15 14:37:29 +01:00
Julian Smith
5990ba92f8 src/MultiPlayer/multiplaymgr.cxx: use std::initializer_list instead of C array.
After review. This simplifies iterating.
2019-07-04 13:16:22 +01:00
Julian Smith
2888eb00de Various fixes to view/multiplayer code after review.
src/MultiPlayer/multiplaymgr.cxx
src/MultiPlayer/multiplaymgr.hxx
    removed starts_with() and ends_with() - already provided in simgear::.
    removed output() fn for SGPropertyNode, as unused.
    added makeStringPropertyNameSafe().
    FGMultiplayMgr::addMultiplayer(): use std::find_if() to find model file.
    added FGMultiplayMgr::subsystemName().
src/Viewer/view.cxx
src/Viewer/view.hxx
    removed getDoubleValue() as not required.
    moved agl code into new View::handleAGL() fn.
    renamed View::Damping::setGet() => View::Damping::updateTarget().
2019-07-04 13:16:22 +01:00
Julian Smith
a0ee3a4cc4 src/Viewer/renderer_legacy.cxx: fixed compiler warning about initialisation ordering. 2019-07-04 13:16:22 +01:00
Julian Smith
4a067e721f src/MultiPlayer/multiplaymgr.cxx: don't overwrite /sim/multiplay/visibility-range-nm if already set.
This allows it to be set e.g. in ~/.fgfsrc with --prop.
2019-07-04 13:16:22 +01:00
Julian Smith
5772325bc6 Allow most default views to work on multiplayer aircraft as well as the user's aircraft.
Currently this works for all the default views except for Tower Look From (for
which it doesn't really make sense) and Fly-by View.

We now search for and load a -set.xml that matches the model .xml,
when new multiplayer aircraft is set up. This allows us to find view
offsets etc, e.g. allowing cockpit and helicopter views to work with
multiplayer aircraft. Properties from the -set.xml are placed into
/ai/models/multiplayer[]/set, so for example viewing offsets are in
/ai/models/multiplayer[]/set/sim/view[]/config/target-{x,y,z}-offset-m. We also
copy the aircraft's chase-distance into the view config params, similar to how
fgdata:defaults.xml does for the user's aircraft. And we also fill in views'
missing offsets from the Helicopter View config; e.g. this enables the new
Tower View AGL to show aircraft correctly centred, despite aircraft currently
not having this view defined in their -set.xml. [We don't currently attempt to
cache or reuse -set.xml data.]

Have ensured that view position responds to mouse movement in the same way for
viewing the user's aircraft as for multiplayer aircraft (previously, Model View
reversed the affect of vertical mouse movements).

Added new Tower AGL view. Behaves similarly to Tower view, but automatically
scales and pans vertically in order to always show the vertical range
extending from just above the aircraft down to the ground immediately below
the aircraft. We use aircrafts chase-distance as an indication of size. We
damp the ground level value to reduce the viewing jumping around too much
e.g. if the aircraft flies over buildings. The amount of damping is set by
fgdata:defaults.xml's lookat-agl-damping value.

Fixed problem where Tower View eye position moves slightly as target
aircraft heading changes. This was caused by us unnecessarily applying the
aircraft-centre correction to the eye position.

src/FDM/flight.cxx: also make /orientation/true-heading-deg. This allows
local orientation to be used like multiplayer orientation, which only
has /ai/models/multiplayer[]/orientation/true-heading-deg. [A better fix
might be to replace all occurrencies of /orientation/true-heading-deg with
/orientation/heading-deg, but this would be a rather large commit.]

Details:

src/Viewer/view.*: removed View::updateData() as is no longer required.

src/MultiPlayer/multiplaymgr.cxx: use helicopter view target offsets as
defaults. E.g. in tower view agl, aircraft won't currently be defining these
offsets. More generally, this allows aircraft to define target offsets only in
helicoter view.

src/FDM/flight.cxx
    FGMultiplayMgr::FillMsgHdr(): Added tie of /orientation/true-heading-deg to
    get_Psi_deg, so it duplictes the existing /orientation/heading-deg.

src/MultiPlayer/multiplaymgr.cxx
src/MultiPlayer/multiplaymgr.hxx
    FGMultiplayMgr::addMultiplayer(): look for and load -set.xml that matches
    the model. Patch various view-related things up in similar way to what we
    do for the user's aircraft, so that multiplayer views work.

    Made FGMultiplayMgr::getMultiplayer() public, so it can be used by
    src/Viewer/view.cxx.

src/Viewer/view.cxx
src/Viewer/view.hxx
    View::View(): Added lookat_agl, lookat_agl_damping params for new Tower
    View AGL. Preserve user's field-of-view in separate variable so that Tower
    View AGL can modify the actual field of view independently.

    Added view_index param so that we can find multiplayer view[]/config/
    properties.

    getViewOffsets(): new fn that finds view offsets for user aircraft or
    multiplayer aircraft.

    View::recalcLookFrom() View::recalcLookAt: Lots of changes to allow things
    to work with multiplayer aircraft. View::recalcLookAt() can now do Tower
    View AGL.

    View::Damping: support for damping, used by Tower View AGL. Might be good
    to use this for other damping.

    View::updateData(): removed, as calculations are now all done inside
    View::recalc*().

    put properties {x,y,z}-offset-m into new View::_adjust_offset_m member
    instead of _offset_m. This avoids confusion between a view's offsets and
    the offsets added in by the user via the 'Adjust View Position' dialogue.

src/Viewer/viewmgr.cxx
    FGViewMgr::init(): pass view number to
    flightgear::View::createFromProperties().
2019-07-04 13:16:22 +01:00
Edward d'Auvergne
34a6cb3c74 SGSubsystem classes: Registration of all subsystems. 2019-07-01 14:51:32 +02:00
Edward d'Auvergne
d259c70560 SGSubsystem classes: Addition of staticSubsystemClassId() to all subsystems. 2019-07-01 14:51:32 +02:00
Edward d'Auvergne
0eb8716d45 Autopilot components: Switch to using the subsystem name.
The _name, get_name(), and set_name() variables and functions have been removed.
The Component::get_name() function is now handled by Subsystem::subsystemId(),
and Component::set_name() replaced by SGSubsystem::set_name().  The
Component::_name variable is replaced by SGSubsystem::_subsystemId.
2019-07-01 14:27:30 +02:00
Edward d'Auvergne
332c240b38 SGSubsystemGroup: Removal of the subsystem group naming.
This is a partial reversion of 5253215065, the
changes of which are incompatible with the subsystem class IDs.
2019-07-01 14:27:30 +02:00
Edward d'Auvergne
fb5c36fc82 SGSubsystem classes: Renaming of the subsystem ID variables and functions. 2019-07-01 14:27:30 +02:00
Edward d'Auvergne
7a6e63ddb9 SGSubsystem classes: Subsystem and subsystem group API declaration standardisation.
This is a cleanup commit.
2019-07-01 14:27:30 +02:00
Edward d'Auvergne
60a2444766 SGSubsystem classes: Whitespace standardisation of the declarations.
This is a clean up commit prior to the subsystem API standardisation to simplify
the diffs.  It includes all SGSubsystem and SGSubsystemGroup derived classes.
2019-07-01 14:27:28 +02:00
James Turner
8428cd2a44 Revert "CommRadio: fix tuning 25Khz and 75Khz channels"
Revert this change - I will re-add the unit-tests again, but we need
a different approach for 8.3 stations, than what I did here.

This reverts commit 91cc83abb5.
2019-07-01 06:29:05 +01:00
James Turner
91cc83abb5 CommRadio: fix tuning 25Khz and 75Khz channels
In 8.3 mode, ensure that 25 and 75Khz channels can be tuned using the
abbreviated syntax (eg 118.02 for 118.025). 

As part of this, add test coverage of the CommRadio for basic and 8.3-
mode operation.
2019-06-27 15:45:53 +01:00
James Turner
4905aa255c Arrival procedure routing fixes
Deal with some cases in STAR -> approach routing better:

- when the IAF is the initial wpt of the approach primary sequence, 
  just accept this instead of warning. This is common in some XML
  files from Navigraph, for example EDDF

- don’t duplicate the IAF into the wpts returned by Approach::route
2019-06-24 16:37:56 +01:00
Torsten Dreyer
0d8d2addcf Autopilot member initialization order (removes warning) 2019-06-17 11:57:55 +02:00
Scott Giese
efcbdcfec2 [security] Prevent buffer overrun. 2019-06-15 21:30:54 -05:00
Scott Giese
47e3e7baed [Emesary] Fix compile on Linux. 2019-06-14 21:45:11 -05:00
James Turner
cfae6d2c9f CommRadio: fix power and noise/squelch
- when add-noise is false, mute noise completely
- if the CommRadio is not powered by the generic electrical system,
  work by default (as was previously the case)
2019-06-11 23:26:51 +01:00
Richard Harrison
6ebc91d3f7 Added mainloop frame notifications
Using Emesary Global Transmitter the following events are notified

* Frame Begin
* Frame End
* Mainloop started
* Mainloop stopped

This integrates with the background threaded Nasal Garbage collection (simgear:nasal/cppbind/NasalEmesaryInterface.hxx) and is also controlled by the properties as follows

* /sim/nasal-gc-threaded (true) - use background threaded GC
* /sim/nasal-gc-threaded-wait (false) - at the start of the frame wait for the previous GC thread to complete.

I initially thought that the wait at the start of the frame would be necessary; however in 100 or so hours of flight without the await for completion at the start of frame no threading problems (or any other problems) were shown; so nasal-gc-threaded-wait is defaulted to false which gives a slight boost in performance.

So what this does is to it removes the GC pause of 10-20ms every 4 seconds (test using the F-15). This change doesn't really give much extra performance per frame because normally GC is only performed when needed.
2019-06-11 14:38:38 +02:00
Richard Harrison
8c4334e3ae Increase severity of warning when trying to add a setlistener onto a tied property
- before this it was all to easy to miss being at DEBUG level and this is quite an important problem to be aware of for model developers
2019-06-11 14:38:38 +02:00
James Turner
4f4166e540 Use the global ATC sample group for the CommRadio
Remove the custom sample-group, and use the standard one, for the
comm-radio ATIS voice and noise.
2019-06-06 10:03:40 +01:00
James Turner
1a3daf39a0 ATC volume and settings passed to the group
Note sure this is strictly the correct place to do this, but it’s
where we do it for avionics, so following for now.
2019-06-06 10:03:40 +01:00
James Turner
3c56e74d07 Httpd: Avoid console spam by WS ping/pong frames 2019-06-05 17:41:07 +01:00
James Turner
0bea6153b0 Event input: button fire repeat 2019-06-05 17:41:07 +01:00
James Turner
5ffe96237f Fix a warning 2019-06-05 17:41:07 +01:00
James Turner
309aaa794f Flite always compiled now. 2019-06-03 16:51:08 +01:00
James Turner
688f49b487 Convert comm-radio to AbstractInstrument 2019-06-03 15:24:02 +01:00
James Turner
aad582f2c3 MarkerBeacon uses AbstractInstrument 2019-06-03 14:32:38 +01:00
James Turner
a26c671200 Migrate transponder to AbstractInstrument 2019-06-03 13:49:48 +01:00
James Turner
ff009bc58f Remove ‘X Double-scroll’ workaround
Remove this since it’s causing some other issues, let’s see if it
really still an issue on different platforms.
2019-06-03 11:54:25 +01:00
Ganael Laplanche
66e6afb449 Avoid crashing when udev_device_get_parent() returns a NULL pointer 2019-05-29 12:06:07 +02:00
James Turner
bd2c524b21 HID input: more debug output 2019-05-27 16:06:27 +01:00
James Turner
d8b6fbfef0 macOS / DBus : avoid abort on startup
Don’t do the fgOSDisableScreensave DBus stuff on macOS - there is no
global DBus daemon configured by default.
2019-05-27 16:05:19 +01:00
James Turner
88a78dd314 Remove last hard-coded default airport ID
Neither Torsten nor I can recall why we continued to hard-code this,
so make it dynamic for now. When we remember why we hard-code it,
we can add a BigComment from future-James to future-future-James about
why not to do this again :)
2019-05-27 11:42:53 +01:00
James Turner
4ed410dc09 Adjust code for some older GCC versions
Implicit conversion from raw-pointer to std::unique_ptr<T> was failing,
use a stub replacement for std::make_unqiue to wrap this up cleanly.
2019-05-27 11:38:37 +01:00
James Turner
c6feaafe2a Merge /u/fgarlin/flightgear-src/ branch next into next
https://sourceforge.net/p/flightgear/flightgear/merge-requests/164/
2019-05-22 12:54:52 +00:00
Fernando García Liñán
fa4ef2ab52 Added a property to indicate compositor support 2019-05-20 23:44:16 +02:00
Fernando García Liñán
b9e3ed67f0 Compositor: Fixed intersection checking for hotspots 2019-05-20 22:53:16 +02:00
Erik Hofman
8e2b2ff327 Add cstring 2019-05-20 14:17:36 +02:00
James Turner
4915b7d3a5 Merge /u/dancliff/flightgear/ branch fix_for_AI_radius into next
https://sourceforge.net/p/flightgear/flightgear/merge-requests/163/
2019-05-18 15:41:28 +00:00
Dan Wickstrom
c6e91d8751 Check for valid value when updating AI lod radius. 2019-05-18 11:30:37 -04:00
James Turner
910bd2c0fd Fix for sub-model initial offsets
The offset in body coordinates is needed by the FGAIBallistic in some
cases, restore this.
2019-05-18 16:20:31 +01:00
Dan Wickstrom
35c24ce5d4 Update radius of AI model after model data is loaded - prevents rendering artifacts at near/far camera boundary. 2019-05-18 07:10:40 -04:00
James Turner
2266c27930 Merge /u/legoboyvdlp/flightgear-src/ branch tcasPatch into next
https://sourceforge.net/p/flightgear/flightgear/merge-requests/162/
2019-05-17 09:03:52 +00:00
legoboyvdlp R
ee4f4a1273 TCAS: adjust property names to correct format 2019-05-17 08:48:26 +01:00
James Turner
955138d06e Avoid a crash on HID devices with no name. 2019-05-16 11:11:19 +02:00
Stuart Buchanan
5f2f72a4eb Fix AI Scenarios
Due to e43fe82094 models in AI scenarios were
being searched down the AI/Aircraft and Aircraft paths, where in fact
they are by default a full path from FGDATA.

This fixes the problem by setting DATA_ONLY as the search order.
Other search orders can be set in the scenario file by setting
the search-order tag to "DATA_ONLY", "PREFER_AI", "PREFER_DATA"
2019-05-15 21:09:49 +01:00
legoboyvdlp R
16b178a2d9 TCAS Instrument: add configuration options 2019-05-14 19:03:26 +01:00
James Turner
f159b98224 Fix some warnings from procedures loader 2019-05-13 14:41:28 +01:00
Bertrand Coconnier
b486273e0b [JSBSim] Add Windmilling flag
The flag allows to disable the windmilling of Turbine engines.
2019-05-08 16:39:26 +02:00
Bertrand Coconnier
0635380708 Restored humidity simulation in atmosphere.
Based on the dew point temperature supplied by FG, JSBSim updates the atmosphere density and computes all the usual parameters (RH, vapor pressure, saturated vapor pressure, etc.)

The mass fraction of water per unit of air mass is capped according to the record high from ISA 1976 standard atmosphere. As a consequence, at very high altitudes, air is always extremely dry (approx. 30 ppm i.e. 30 parts per million) whatever the conditions at sea level.
2019-05-08 16:11:06 +02:00
Bertrand Coconnier
c934348513 Remove the MSIS and Mars atmosphere files since they are not used. 2019-05-08 15:04:31 +02:00
Richard Harrison
50d4b37a7d Nasal timestamp - add elapsed uSec 2019-05-07 05:16:37 +02:00
Stuart Buchanan
1d1096d6f7 All start from parking position with no ground net
Fix for https://sourceforge.net/p/flightgear/codetickets/2125/

Previously, selecting a non-pushback parking position from the l
auncher that did not have a ground network resulted in the
aircraft being placed in the center of the airport.

This resolves the problem by creating a default segment simply
moving forward 2m.
2019-05-04 17:43:33 +01:00
Richard Harrison
7db06300c0 Nasal binding for SGTimeStamp via maketimestamp
usage:

var timer = maketimestamp();

timer.stamp(); # start timing

print("elapsed ",timer.elapsedMSec(),"ms");
2019-05-02 07:31:37 +02:00
Lars Toenning
ff7db27cd1 swift: Add version number check 2019-04-30 10:35:30 +02:00
Lars Toenning
cea342a064 swift: Getting pressure altitude 2019-04-30 08:16:38 +02:00
Florent Rougon
9b019f6b72 FGJoystickInput: increase MAX_JOYSTICKS from 10 to 16
Since PLIBjs uses joyGetDevCaps()[1] on Windows and this function
accepts joystick ids from 0 to 15 (-1 being special), setting
MAX_JOYSTICKS to 16 ensures that FGJoystickInput::init() can scan all
joysticks that joyGetDevCaps() is able to report about.

[1] https://docs.microsoft.com/en-us/previous-versions/dd757105(v%3Dvs.85)
2019-04-29 12:54:03 +02:00
Richard Harrison
9121079cfe Disable time easing if ctrl key pressed. 2019-04-28 19:40:26 +02:00
Richard Harrison
1399640d79 Use OSG to find out the maximum supported texture size
The DDS Texture cache will auto resize textures that are larger than this value.
2019-04-28 19:40:26 +02:00
Richard Harrison
d3ce7adc95 NasalTimers; ensure unique name as this is required to identify the timer for certain operations (e.g. stop) 2019-04-28 19:40:26 +02:00
Richard Harrison
d2a179f1f3 Multiplayer: do not transmit the transmission-frequency-hz 2019-04-28 19:40:26 +02:00
James Turner
bac5d6c713 Windows: read Unicode command line
One more step in full Unicode support.
2019-04-27 18:54:13 +01:00
James Turner
9d71d09072 Enable HID-input on Windows 2019-04-27 18:54:13 +01:00
Bertrand Coconnier
3539b13985 Stricter syntax checking for JSBSim.
JSBSim was not checking the tag names inside <test> and <condition> statements and this has led to abusive use of tags unsupported by JSBSim such as <and> and <or>. The problem is that JSBSim was not interpreting the <or> statement as the user meant it: JSBSim interpreted it as <test logic="AND"> while the user obviously meant <test logic="OR">. As a result JSBSim silently swallowed the tag and gave results which were not was the user expected without any obvious indication about what was going wrong.

As a result, this commit implements stricter syntax checking and rejects illegal tags within <test> and <condition> statements.

This commit also introduces stricter checking on XML elements which allow either a real value or a property name to be used. JSBSim now rejects the statements where the property name is specified inside a <property> statement. For example, the follwoing statement is rejected:

<clipto>
  <min> <property> /fdm/jsbsim/some/property </property> </min>
...

The correct syntax being
<clipto>
  <min> /fdm/jsbsim/some/property </min>
2019-04-27 12:29:22 +02:00
Lars Toenning
aaa753d169 swift: Fixed wrong startup message 2019-04-26 09:37:37 +02:00
Lars Toenning
21124e7b7e swift: CMake adjustment 2019-04-26 09:37:17 +02:00
James Turner
b83c069b0b Move power-btn and operable props into base class
AbstractInstrument now handles a generic power-btn and operable
property, and hence includes them in the serviceable-and-powered
check.
2019-04-25 17:11:50 +01:00
James Turner
40b96fef48 Convert ADF and (old) NavRadio to use new base class
This enables separate power-supply for each installation.
2019-04-25 17:11:50 +01:00
James Turner
9cd8ccae80 Merge /u/fgarlin/flightgear-src/ branch next into next
https://sourceforge.net/p/flightgear/flightgear/merge-requests/157/
2019-04-25 12:52:46 +00:00
Dan Wickstrom
1948304157 Fix problem where AI planes are placed on top of user aircraft when user either selects a specific spot or user selects parking to be an available spot. 2019-04-25 11:39:41 +01:00
James Turner
6261b71774 Add AbstractInstrument base class and convert DME
Base class handles some common instrument features, such as the
serviceable node and electrical supply. The electrical supply node
and minimum voltage to operate can now be set in the configuration
via <power-supply>/path/to/output/volts</> and <minimum-supply-volts>
2019-04-24 18:56:56 +01:00
Fernando García Liñán
e0507e9095 Fixed the aircraft showing on top of the splash screen when relocating/resetting 2019-04-23 13:21:19 +02:00
James Turner
b2bedfd485 Fix typo in submodels commit 2019-04-22 11:58:55 +01:00
James Turner
ea336af4dc Submodel offset supports pitch/yaw values
Reported by Stewart Andreason
2019-04-19 10:15:36 +01:00
James Turner
79562bcf31 Avoid crash on Cmd-Q exit of the app on macOS
On this code path, AppKit uses exit, rather than letting main run as
normal. We handle most things via C++ destructors, which do run, but
Qt is happier if we clean it up explicitly.
2019-04-17 22:53:10 +01:00
James Turner
e2ed179f4c Temporarily log out UI languages on launcher start
This is to help with diagnosing:
https://sourceforge.net/p/flightgear/codetickets/2121/
2019-04-17 15:11:23 +01:00
James Turner
4e8e69b4f8 Migrate invert-mouse-wheel setting from pre 2019.x
Flip the sense of this property, since the interpretation in SG is
also flipped now.
2019-04-11 20:40:17 +01:00
James Turner
4d562e2a90 Check existence of an OpenGL extension 2019-04-11 11:36:22 +01:00
Lars Toenning
85acefab95 Swift: initial support 2019-04-11 11:36:22 +01:00
Richard Harrison
8e1e6c8254 AI Traffic - better integration with terrasync.
- allow on demand update

new property traffic-manager/active indicating that AI Traffic is running
2019-04-07 09:00:01 +02:00
Stuart Buchanan
ff12994554 Execute load/unload Nasal for both detailed and AI
Previously only the first of a detailed/bare AI model tuple's Nasal
would be executed when the model is loaded.  This loads both.
2019-04-06 22:22:02 +01:00
Bertrand Coconnier
f011d5f567 JSBSim bug fixes
- Fixed the scripts end time computation
- Fixed nested tests in switches
- Simplifications to the computation of the aerodynamics angles alpha & beta
- Account for the contact transition in the gear compression speed
- Fixed docs in FGTank
2019-04-06 23:09:36 +02:00
Florent Rougon
2720d9fd9f Minor improvements to loading of nav.dat files
- simgear::strutils::readNonNegativeInt<unsigned int>() is better than
  std::stoul() at detecting and reporting erroneous input (for one, it
  checks that the given string *represents* an integer that fits in the
  specified type, as opposed to just "starts with digits").

- The format version is now an unsigned int (just because it's largely
  enough and simgear::strutils::readNonNegativeInt<unsigned long, 10>()
  isn't instantiated for now).

- The format version is now printed to the log (it was already for
  apt.dat files, but not for nav.dat files).
2019-03-28 07:44:59 +01:00
Florent Rougon
378999dd80 Improve parsing of apt.dat header
Properly report errors in the line that is supposed to contain the
format version of an apt.dat file.
2019-03-27 08:31:09 +01:00
Florent Rougon
8fbbf91270 Prevent a segfault when parsing malformed nav.dat files
Instead of doing an illegal memory access (to fields[0]), properly
report the problem when the line that is supposed to contain the format
version of a nav.dat file is empty.
2019-03-27 07:57:24 +01:00
Richard Harrison
f014e8825d FGComm: added listener for comm volume
Without this listen volume only changed on comm retune / PTT release
2019-03-27 00:28:20 +01:00
James Turner
64eaf6fe03 Fix for route-path when leg 0 is not a runway
Avoid doing turn-computation for the first waypoint, even if it’s not
a runway. Add a unit-test to cover this case.

Reported by Josh Davidson
2019-03-26 22:50:46 +01:00
James Turner
7c2a5e9e99 FlightGear support for queued commands
This enables queued commands to be processed once per main event loop.
At present this is done after subsystem updates.
2019-03-24 17:59:23 +00:00
James Turner
6860627dea Tweaks to launcher diagrams, to debug parking clicks
Adding some info/qInfo log output, to try and diagnose missed clicks
reported by some users.
2019-03-23 14:46:03 +00:00
Richard Harrison
8db784bf17 FGcomm: PTT usage and volume
- PTT will now use whatever channel is selected; non zero simply means PTT active.
- The volume as set in the comm[]/radio will now be used as a factor on the FGComm volume
2019-03-21 17:56:59 +01:00
James Turner
669a80216d Launcher: fix aircraft switching on update
Remove some obsolete code which caused the current aircraft to get
switched unexpectedley when updating
2019-03-20 17:09:12 +00:00
Richard Harrison
b9dc64ab87 FGComm; logic change to disconnect comm when selected channel set to 0.
It will be reconnected if PTT is set; and not disconnected until selected channel is again set to 0.
2019-03-20 15:13:11 +01:00
Richard Harrison
b42969ae91 Add support for FGCom multiple radio support
PTT now uses an int channel number (0 means not pressed, 1 = comm radio 1 (index [0]),etc...)

/comm-radio-selected is the default comm channel to use. This should usually be the same as will be set by PTT into /controls/radios/comm-ptt

However PTT will switch the FG comm inbound and outbound frequency to whichever radio was PTT'd.

New properties also set in multi-player to indicate the transmission frequency and normalised power (currently just set to 1.0)

13001(int)        : sim/multiplay/comm-transmit-frequency-hz
13002(short-norm) : sim/multiplay/comm-transmit-power-norm
2019-03-19 21:20:17 +01:00
Richard Harrison
a9761bb3ba Use simgear::strutils::replace instead of regex for compatibility. 2019-03-17 18:22:04 +01:00
Richard Harrison
c686f61817 Configurable METAR url
Use environment/realwx/metar-url if present; otherwise default to hardcoded value.

format: https://tgftp.nws.noaa.gov/data/observations/metar/stations/[station].TXT

i.e. [station] is replaced with the required station.
2019-03-17 00:45:31 +01:00
Richard Harrison
a81607049f Merge /u/fgarlin/flightgear-src/ branch next into next
https://sourceforge.net/p/flightgear/flightgear/merge-requests/153/
2019-03-07 15:23:30 +00:00
James Turner
d5ce11ce55 Merge /u/dancliff/flightgear/ branch launcher_addons_merge into next
https://sourceforge.net/p/flightgear/flightgear/merge-requests/151/
2019-03-04 15:20:44 +00:00
Dan Wickstrom
1e858767b1 Modifications to launcher to load Add-on modules and view related metadata. Each module can also be selectively enabled with a checkbox. Fixes also submitted by Florent Rougon. 2019-03-03 12:59:48 -05:00
James Turner
1183d282ae Avoid copying SGShared<FGTaxiNode> in ground-net
This makes some common iterations in the AI traffic code faster,
since there is no thrashing of the atomic operations.
2019-03-03 12:12:03 +00:00
James Turner
87f63c4cec Property list: show group id/name in verbose mode
Patch from Henning to simplify debugging canvas trees
2019-03-03 11:56:52 +00:00
James Turner
d80537eb2f Ensure the splash logo is a file, not a dir
Thanks to Richard Harrison for catching.
2019-03-03 11:39:04 +00:00
Richard Harrison
a95daa2a5a add command line options to enable and disable DDS Texture cache. 2019-03-01 19:06:42 +01:00
Fernando García Liñán
ed276141c7 Compositor: Removed the option to change the CameraGroup cull masks. Instead, the FGRenderer sets the view master camera cull mask, which may be inherited by any pass that needs it. 2019-02-23 23:36:07 +01:00
Richard Harrison
8e35b7efc7 OSG 3.4.0 compilation fixes. 2019-02-20 19:12:02 +01:00
Fernando García Liñán
bec41e7e17 Compositor: FG now gracefully quits if no valid Compositor has been found. Added a command line option (--compositor) to choose the default Compositor. 2019-02-20 03:09:17 +01:00
Richard Harrison
16dedfe78f Merge /u/fgarlin/flightgear-src/ branch next into next
https://sourceforge.net/p/flightgear/flightgear/merge-requests/149/
2019-02-19 07:29:05 +00:00
James Turner
c2fb01ccb7 Partial revert of METAR fix, now SimGear is fixed.
This reverts commit 2fdc24c109.
2019-02-17 19:03:19 +00:00
Richard Harrison
5253215065 Improvements to performance monitoring.
* Ensure that subsystems are named.
* Nasal timers are named appropriately
2019-02-10 18:07:07 +01:00
Bertrand Coconnier
f57d7329c2 Sync'ed JSBSim
- New system component linear_actuator from Adriano Bassignana.
- Bug fix of Euler angles computations in FGMatrix33 (a pure westward heading of 270 deg was erroneously converted to a pure eastward heading of 90 deg). This could make the aircraft trimming fail when spawning with a heading of 270 deg.
2019-02-10 10:25:56 +01:00
Stuart Buchanan
b166b523b2 Copy name into buffer on release builds
Problem seen with Nasal setChildren/setValues where names were not
being passed down the stack.  Identified as over-zealous IF_DEF
to remove unused variable compiler which meant snprintf was not being called
for non debug builds (see c177aeb623)

Fix is to change assert() calls to an naRuntime error, which ensures
that the len variable is always used and is
more appropriate as buffer overrun could occur in any release build if
someone tried to set a name of >1024 characters.
2019-02-09 18:11:56 +00:00
Scott Giese
2fdc24c109 METAR fix 2019-02-07 01:26:05 -06:00
James Turner
df7988fb49 Fix NaNs in the VSI when pressure reading is invalid
Detect zero/very low pressure reading and avoid generating NaNs in the
main update code. Thanks to Johnathan Redpath for the report.
2019-02-06 20:48:18 +00:00
James Turner
dee1998979 Less Boost. 2019-02-06 17:36:36 +00:00
Torsten Dreyer
d1116b0e25 fix "error: use of ‘n’ before deduction of ‘auto’" 2019-02-06 09:45:45 +01:00
Torsten Dreyer
c177aeb623 Silence some warnings about unused variables.
No functional change
2019-02-06 09:41:08 +01:00
Scott Giese
edce380c7b Fix missing header for OSG macros.
Patch provided by Stewart Andreason.
2019-02-05 21:48:05 -06:00
Scott Giese
8fc59cbc49 Fix missing header files. 2019-02-05 00:24:12 -06:00
Scott Giese
7fd7c599a2 Fix missing header file for strutils 2019-02-04 23:49:02 -06:00
Fernando García Liñán
e042364dd0 Compositor framework initial commit. 2019-02-04 18:03:38 +01:00
James Turner
a9a49bc2e6 Unboosting files
Use simgear::strutils replacements in places, C++11 features in others
2019-02-04 15:20:22 +00:00
Torsten Dreyer
f6046836c0 Try fix windows build (missing includes) 2019-02-03 21:39:27 +01:00
Torsten Dreyer
5b379f904f METAR id needs to be uppercase not lowercase 2019-02-03 21:17:30 +01:00
Torsten Dreyer
9eeda7d339 unboost the environment 2019-02-03 19:32:57 +01:00
Torsten Dreyer
983227f18f remove usage of boost_foreach in realwx_ctrl.cxx 2019-02-03 15:11:45 +01:00
Torsten Dreyer
8a190f853f unboost the autopilot 2019-02-03 15:11:45 +01:00
James Turner
1e0e7f7ffa Rename {ai}/controls/flight/longitude-mode
Assuming this should have been ‘vertical-mode’ all along, since the
corresponding other mode property is called ‘lateral-mode’. Make an
alias to the old name to keep existing scripts working.
2019-02-03 13:38:51 +00:00
Torsten Dreyer
e23f0bc059 unboost commradio and newnavradio 2019-02-03 13:43:04 +01:00
James Turner
8c43b622e5 Launcher: fix handling carrier argument 2019-02-03 12:12:00 +00:00
James Turner
49c4dc5213 Scenarios from FG_HOME, aircraft and add-ons
Enhancements suggested by Nikolai Verner-Christensen - support loading
scenarios from {FG_HOME}/Scenarios, {aircraft-dir}/Scenarios and
{add-on}/Scenarios. 

Additionally, allow passing the path to a scenario file to
 —ai-scenario, eg —ai-scenario=/home/jmt/FGFS/my-test-scenario.xml

When a scenario defines a carrier, and —carrier is used to request a
carrier start, we now auto-load the corresponding scenario, to give
a nicer user experience.
2019-02-03 12:12:00 +00:00
danw
1c4e146a43 Modifications to the Launcher to enable the management of Add-on modules 2019-02-02 15:46:09 -05:00
Richard Harrison
f05c0297c0 OSG < 3.4.x fixes
This will use the inherently unsafe versions of the load methods which can result in deleting an object (from the cache) that has just been loaded in the database thread.

Symptom OSG WARN deleting still referenced object.

branches next, origin/next
2019-01-26 18:20:52 +01:00
Richard Harrison
7ab07eb1c0 Ensure fonts list cleared in destructor.
This is part of work trying to track down a segfault that is caused after a replay session (F-15).
2019-01-26 18:20:52 +01:00
James Turner
305d555be4 Reduce log output at level=debug
These messages aren’t adding much based on my understanding, we can
re-add something more specific if needed.
2019-01-22 17:30:36 +01:00
James Turner
d6ae2e6aa0 Tweak pixel-ratio handling in the PUI camera 2019-01-22 10:50:55 +01:00
Richard Harrison
cbde4c90da optimise property usage for camera using local static for ratio. 2019-01-20 23:30:46 +01:00
Richard Harrison
d963aef562 OSG 3.5+ compatibility.
Still work to do here in implementing the methods; this just lets it compile and run.

Labelled with OSG:TODO
2019-01-20 23:28:32 +01:00
Richard Harrison
9639b63d44 Use readRef version of osgDB methods to give us thread safety 2019-01-20 23:26:58 +01:00
Richard Harrison
6e2443d268 Change to print exception type (inherited exceptions) 2019-01-20 23:26:58 +01:00
Richard Harrison
58314f359a Change screenshot filename to have date time
Format fgfs-YYYYMMDDHHMMSS[-#] where the # is for the rare case when there are multiple screenshots per second.

The change makes the filenames sortable based on date and slightly improves run time performance when there are a lot of screenshots in a particular directory
2019-01-20 23:26:58 +01:00
Richard Harrison
88f43a33a3 Remove messages that appear when no tile is loaded because it isn't present in the scenery
These get a little spammy when flying over areas without terrain and don't really serve much of a purpose.
2019-01-20 23:26:58 +01:00
James Turner
4deb61d0af Map dialog draws heliports now!
Patch from Daniel Wickstrom, with some style changes by James
2019-01-15 11:32:57 +00:00
James Turner
df537d6e57 Tolerate missing runways parsing procedures
Current Navigraph procedures contain runways we lack, skip these
procedures instead of failing to parse the data.
2019-01-14 16:46:38 +00:00
James Turner
fac110ca40 Airport-search can be filtered by type
Adjust the special NavCache function used for airport search, to
allow filtering by type (which is exposed in an upcoming patch to the
dialog code).

Patch by Daniel Wickstrom
2019-01-14 12:14:20 +00:00
James Turner
b3c72a6f2e Fix a crash clearing the flightplan runway 2019-01-12 23:40:51 +00:00
James Turner
8487ca7ee6 Add findByIdent to Nasal API 2019-01-12 23:40:51 +00:00
James Turner
416317e444 Nasal: allow filtering airport approaches by STAR 2019-01-12 23:40:51 +00:00
James Turner
4df6cb0558 Nasal: expose additional members on fixes/navaids
Add a ‘colocated_dme’ member to identify VOR/ILS pairings with DME. 
Also exposed the navaid unique ID for easy disambiguation.
2019-01-12 23:40:51 +00:00
James Turner
5affa13348 Nasal: expose airways data and via options 2019-01-12 23:40:50 +00:00
James Turner
d39bcca9cb Improve airway parsing in ICAO routes 2019-01-12 23:40:50 +00:00
James Turner
758518b248 Launcher: improve flight plan leg display 2019-01-12 23:40:50 +00:00
James Turner
612693c276 Via stores Airway ref instead of std::string
Avoid lots of ambiguity resolving airways, especially high- vs low-
level airways with identical idents.
2019-01-12 23:40:50 +00:00
James Turner
6fd5fcfda0 Add missing isType overload for FGFIx 2019-01-12 23:40:50 +00:00
James Turner
615c8433c1 Airway API tweaks to support FMC/routing 2019-01-12 23:40:50 +00:00
James Turner
c6aa7fee26 Hacking on airway loading logging 2019-01-12 23:40:50 +00:00
Bertrand Coconnier
9c7243e1c4 [JSBSim] Exports the fuel density to the property tree. 2019-01-12 15:40:09 +01:00
James Turner
6de242f184 Launcher: hook up ‘available parking’ option
Many cases of this option were not setup correctly, fix this so it
works as advertised.
2019-01-08 23:21:28 +00:00
James Turner
845e7c6bef Improved ‘is MP enabled’ check for pos-init
This fixes the MP detection check when selecting MP on the command-line
2019-01-08 23:20:51 +00:00
Richard Harrison
b56df3f1b7 Merge /u/janodesbois/flightgear-jano/ branch timemgr_mp into next
https://sourceforge.net/p/flightgear/flightgear/merge-requests/146/
2019-01-08 17:08:57 +00:00
James Turner
dd6294b5ea Red-sky: fix edge-case in NaN avoidance code
https://sourceforge.net/p/flightgear/codetickets/2087/
for discussion on this.
2019-01-08 11:08:23 +00:00
James Turner
b0dc850df1 Fix type of some numerical constants
Patch by Ron Haertel
2019-01-06 14:30:58 +00:00
ThomasS
2d5d26260e 1) model search order property in super class AIBase and overridden by sub classes.
2) model search order stored as the enum type in AIBase.
2019-01-06 13:57:22 +00:00
Bertrand Coconnier
e704d589f2 [JSBSim] Takes into account the amount of unusable fuel.
Properties /consumable/fuel/tank[*]/unusable-* supplied in the -set.xml file are propagated to the aircraft model and accounted for in the tanks management.
2018-12-31 00:59:21 +01:00
Bertrand Coconnier
466fb0979d [JSBSim] Added cyclic clipping for FCS components 2018-12-30 20:51:18 +01:00
Bertrand Coconnier
27ddcedad2 [JSBSim] Extend the usage of template funcs to all <function>. 2018-12-30 00:31:47 +01:00
Bertrand Coconnier
3267aaf5e0 Sync'ed JSBSim
* <function> and <fcs_function> that are only applied on constant parameters are now recognized and replaced by their result during initialization.
* Fixed a regression which prevented the wheels rotation speed to slow down while the gears were retracted.
* Added the ability to control the turbine engines spin down factor (thanks to Jonathan Redpath for the pull request).
* Internals : JSBSim has been refactored to use FGPropertyValue in many FCS components. This will allow consistent behavior accross the FCS components including the ability to prepend property names with minus signs '-' to indicate that the opposite sign of the property should be used.
2018-12-27 18:40:03 +01:00
James Turner
018e193a58 Improve Nasal log callback handling
(Was being leaked on reset)
2018-12-20 16:07:44 +00:00
jean pellotier
faf06b42a3 preparation for the lag correction based on time sync, instead of fixed
lag compensation, this is the time manager part.
- introduction of a pure steady clock initialised from system clock at init
- the mp protocol clock have an offset available (will be used
to sync the players, in case ntpd is not accurate or inavailable)
- got a way to see drift between system clock and the fg steady clock, mainly
to see how differents OS behave ...
2018-12-18 02:38:46 +01:00
James Turner
c3cd7b3978 Remove public use of sglog()::would_log() 2018-12-14 15:41:53 +00:00
James Turner
56cc96f280 Parse radial+offset from lat,lon waypoint 2018-12-13 13:46:53 +00:00
James Turner
738101942f Yasim ground friction (stiction) changes
Original code by Brendan Black, with changes / updates by
Daniel Wickstrom.
2018-12-11 15:23:56 +00:00
James Turner
5215e6fcfc Fix an unused var warning 2018-12-10 16:09:53 +00:00
James Turner
f14aa4e57f Navradio: move glideslope angle to NavRecord
Simplifies logic in testing code
2018-12-10 16:09:42 +00:00