1
0
Fork 0
Commit graph

10728 commits

Author SHA1 Message Date
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
James Turner
9339fd2375 Add some /sim/presets properties to setDefaults
Ensure these properties are always defined, but with default values,
to simplify usage.
2018-12-04 09:50:48 +01:00
James Turner
a9475bd0fa Basic nav-radio ILS testing
Complex cases still to be added, but this tests the basic reception.
2018-12-04 09:39:36 +01:00
James Turner
1f1060431f Avoid NaNs in environment code at extreme altitude
Avoid the ‘red sky zone’ when going to higher orbital altitudes
(thousands of km).

https://sourceforge.net/p/flightgear/codetickets/2087/
2018-12-04 09:39:36 +01:00
Richard Harrison
015742b28d LOD: Multiplayer fix
The problem was using FLT_MAX, FLT_MAX to disable a model; this tricked OSG into thinking that FLT_MAX was a valid range and therefore didn't do the update traversal (found by Stuart).

The correct technique to disable a model is to set the min/max range to 0,0

Also generally improved the way that the ranges are managed.
2018-12-03 06:19:04 +01:00
James Turner
6d68e36523 Simple argument parsing for Props protocol
Maps foo=bar arguments to the top-level arguments dictionary of the
command, as strings only. (We could add CMake style foo:type=bar in
the future if needed). Very basic but this enables a bunch of useful
cases, since SGPropertyNode will do value conversion from string on 
access.
2018-11-30 13:59:05 +00:00
Richard Harrison
c09f49e70c LOD: use FLT_MAX as the maximum value in setRange (rather than 100k)
- This is one/the reason for the carrier not being visible when viewing it closely (e.g on cat-1 when view zoomed in)
2018-11-26 21:54:48 +01:00
James Turner
1e104bbdfe Version the FG-root setting
This ensures fresh installs will see an empty value, and hence 
default to the shipped version.
2018-11-25 14:06:51 +00:00
James Turner
4956386b84 Launcher: disable magnetic bearing/headings
These don’t work right now (FG doesn’t support passing them in via
arguments) so disable them in the UI to avoid confusion.
2018-11-25 13:51:06 +00:00
James Turner
2f5df005df NavRadio updating via listener
- avoid updating the formatted frequencies each update()
- reset the station search timer when frequencies change

This should make the radio a bit more responsive (which aids testing
since we don’t need to wait for the search timeout when changing
frequencies)
2018-11-25 13:12:50 +00:00
James Turner
c7b28a1960 UNit-tests for the NavRadio
Still needs ILS and GS tests, but starting to be useful already.
2018-11-25 13:12:50 +00:00
Richard Harrison
1e636ce4cf Support for DDS Texture Cache
- pass texture cache control properties to simgear
 - /sim/rendering/texture-cache/cache-enabled
 - /sim/rendering/texture-cache/compress-transparent
 - /sim/rendering/texture-cache/compress-solid
 - /sim/rendering/texture-cache/compress

- support --texture-cache-dir command line option
- set max reported supported texture size during splashscreen.
2018-11-24 20:21:46 +01:00
Bertrand Coconnier
8742fee23d JSBSim : <function> now checks the number of its arguments. 2018-11-24 18:33:53 +01:00
ThomasS
a8b550ee95 fgcommands "add-aiobject" and "remove-aiobject" for adding/removing objects to the AI subsystem. 2018-11-21 09:28:44 +01:00
James Turner
0239d5ef44 Grid-view for the launcher 2018-11-14 17:11:13 +00:00
James Turner
df810f7970 Fix crash with invalid airway in route 2018-11-12 16:47:50 +01:00
James Turner
31f8f86e12 Fix an inverted flag in Radar calculation
https://sourceforge.net/p/flightgear/codetickets/2083/

Thanks to Jean Pellotier for spotting.
2018-11-08 09:43:29 +01:00
James Turner
2cd3036488 Improved launcher metric units support
For our Russian friends, especially. Also add preliminary support
for above-field elevations (needs FG changes)
2018-11-07 09:39:54 +01:00
James Turner
3b3c99777d Reduce level of a log message 2018-11-07 09:39:54 +01:00
James Turner
8cda76e92b Fix a launcher console warning 2018-11-07 09:39:54 +01:00
James Turner
68813d1c57 Fix missed case in ModelDataExtractor
handle QList<QObject*> case, needed for location:airport runway
and parking selection. Thanks to Jonathan Redpath for the catch.
2018-11-07 09:39:54 +01:00
Richard Harrison
88720a031b Changes to the model interior LOD management.
If a model is marked as <usage>interior</usage> there were a number of problems.

1 - the LOD setting AI/MP interior used the distance from the aircraft; this obviously doesn't quite work for when using the model view.
2 - with the way that models are now loaded as two LOD levels only the interior from the first model loaded (usually the lowest detail) would be considered or processed because the model loader had marked itself as already run (which it had, but not for the model that was actually just loaded.

(2) above could also be the cause of other things not working because the nasal model loaded would not be called, nor would the sound path be setup. There could be other things that aren't working properly because the assumption is that there is just one model.

The fix for (1) is to use the standard OSG PagedLOD and let it handle the details, so I've changed the interior to use this and removed the distane from ownship checks.

The fix for (2) is to use a map to decide if the model that has just finished loading has already been processed, and if not then proceed as normal.
2018-11-06 18:42:07 +01:00
Richard Harrison
e970db3c61 LOD ranges:
Change the single model case to always set the range on the only model rather than the constant modelHighDetail. This is a regressions caused by the change from 0 to modelHighDetail and the reordering the list. When there is only one model the setRange must always refer to model range index 0.

- This could have caused models to not display correctly.
2018-11-05 19:29:20 +01:00
Bertrand Coconnier
d3aa4b19a1 Bug fix for JSBSim.
The feature fail_hardover of the <actuator> component was not giving the correct output in some occurences when clipmax was smaller in absolute value than clipmin.
2018-11-04 17:03:46 +01:00
Bertrand Coconnier
4c7402fb23 Bug fix for JSBSim
Tables CORNERING_COEFF could not be used for BOGEY contact points.
No longer throw an exception when the `internal` keyword of a table is ignored.
The location where errors have been found are now reported.
2018-11-02 23:05:40 +01:00
Richard Harrison
c99ea20883 LOD ranges rework.
Rework the LOD ranges.

1. The scenery ranges are now deltas (avoids overlapping values)
2. The AI/MP pixel mode now has a default radius that is 20 for Aircraft, 200 for ships, 350 for carriers. This is a simple constant in a virtual function.
3. Added the ability to set the AI/MP ranges equal which means use the low detail model.
4. Changed high detail only to be indicated by a -ve number in maxRangeDetail
5. Re-ordered the range list to go from lowest detail at [0] to highest detail at the end. This is because OSG always loads the models starting from zero on the assumption that the detail increases with the index.

This fixes the pixel mode, which previously would use the radius of the parent which would be confusingly large, and unrelated to the actual size of the model. With the simple defaults that we have the pixel values set in the ranges won't exactly match the rendered size of the model on screen, but it will be a lot closer and more importantly meaningful.
2018-10-30 21:05:55 +01:00
Bertrand Coconnier
04eb045931 New features for JSBSim (not to be included in release 2018.3)
The following new features have been added to JSBSim:
* Added the ability to set up the starter and acceleration times of a turbine (parameters <n1spinup>, <n2spinup>, <n1startrate>, <n2startrate>).
* The <integrator> filter can now be reset to 0.0 by setting its <trigger> property to a negative value.
* The integration scheme of the <integrator> filter can now be chosen among "rect" (Euler), "trap" (Trapezoidal), "ab2" 2nd order Adams-BashForth and "ab3" 3rd order Adams-Bashforth
* The following functions can now be used in <function>: floor, ceil and fmod. Their functionalities are the same than the corresponding C/C++ functions.
2018-10-28 16:16:20 +01:00
Bertrand Coconnier
94e1cdc551 JSBSim bug fixes (candidate for cherry picking to release 2018.3)
The following bugs are fixed by this commit:
* PID integration with the 3rd order Adams-Bashforth was inccorect.
* The fail_stuck property of sensors (accelerometers, magnetometers, gyro, etc.) without a <lag> element was setting the output to zero instead of sticking to the last output value. Thanks to Jonathan Redpath (aka legoboyvdlp) for the bug report.
* When a sensor was stuck, the drift, gain, bias and quantization of the last output before being stuck were ignored. Thanks to Dennis J. Linse for the bug report.
2018-10-28 14:38:02 +01:00
James Turner
66d635dc9c Launcher: fix a bug when using MP server 0 or 1
Due to how the popup menu was refresh, using MP servers at index 0 or 1
didn’t work correctly. Change some logic and add a helper to make this
work reliably, without a second Repeater and dummy properties.
2018-10-25 12:10:42 +01:00
James Turner
df9c368099 PUI: change alpha composition mode.
This fixes the missing model-view text, but needs some wider testing,
since it may mess up some other things.
2018-10-25 00:04:54 +01:00
James Turner
07cb303e8c Fix for jumping view when right-dragging
This happens because we were not storing the new position when the
OSG event-adapter handled the event, which includes PUI

https://sourceforge.net/p/flightgear/codetickets/2073/
2018-10-24 22:16:51 +01:00
James Turner
951a3ea6ad Fix Windows build, missined windows.h 2018-10-24 14:28:58 +01:00
James Turner
8510776c1f Switch next to use trunk aircraft catalog 2018-10-23 12:08:28 +01:00
James Turner
00eec40d51 Fix JS header include path 2018-10-23 11:00:59 +01:00
James Turner
196aa472fb Fix crash on Ctrl-V in PUI 2018-10-23 11:00:40 +01:00
James Turner
49c3fc064a XLIFF: Fix loading of indexed strings 2018-10-13 21:22:18 +01:00
James Turner
2313f482a3 Add missing C-string include for strcmp 2018-10-13 09:07:32 +01:00
James Turner
dbb99ee550 XLIFF: fix null approved-attr handling 2018-10-13 08:42:05 +01:00
James Turner
53de09d151 Fix dumb commit for XLIFF approved-attr handling 2018-10-13 00:20:38 +01:00
James Turner
73be50b308 Event-input: axis interpolater support
Expand the range of filtering options on axis values to include the
optional use of an interpolation table, which gives many more options
when dealing with some devices.
2018-10-13 00:03:30 +01:00
James Turner
ae4fe62d5b Crashfix: props protocol invoking Nasal commands
The protocol was sending command args using a stack local SGPropertyNode,
which doesn’t work since FGNasalSys holds a reference
2018-10-12 22:25:34 +01:00
James Turner
adea824bd3 XLIFF parser ignores un-approved translations
As suggested by Florent, ensure we respect the XLIFF ‘approved’
attribute, so we can track translations which don’t work yet due to
PLIB limitations.
2018-10-12 22:24:33 +01:00
James Turner
8f67ddf896 Route-manager: expose new flight-plan values
There were existing properties for these values, make them attached to
the flight-plan values now, especially for cruise settings.
2018-10-12 15:27:51 +01:00
Florent Rougon
4c6a0467a6 Remove splash/ lookup prefix for the unstable-warning (nightly builds)
This was forgotten in commit 6d6e1809f0,
thanks to Mihajlo Tomić for the report.
2018-10-12 13:21:09 +02:00
James Turner
f819750287 Launcher respects --language arg if set 2018-10-12 11:37:39 +01:00
James Turner
1613b44c6a Text fix in ‘Install custom scenery’ dialog 2018-10-12 09:11:20 +01:00
Florent Rougon
6d6e1809f0 Fix translations handling in the splash screen
Don't use the splash/ prefix, it doesn't exist in our XLIFF files.
2018-10-12 07:38:09 +02:00
Florent Rougon
4ee9021eab Launcher: print the locale name when translations were successfully loaded 2018-10-11 22:37:33 +02:00
Erik Hofman
43c201d9d0 Fix an almost certain buffer overflow 2018-10-10 09:24:02 +02:00
James Turner
d7d37ae137 Launcher: further flight plan tweaks
Various improvements based on discussion here:
https://sourceforge.net/p/flightgear/codetickets/2066/
2018-10-09 17:14:23 +01:00
James Turner
180cf66077 Launcher: tweak sidebar icons 2018-10-09 10:25:50 +01:00
James Turner
1cbcae9795 Bugfix: fix range/ident priority of loaded wpts
When the lat-lon of a waypoint disagrees with the discovered ident by
more than a threshold, assume we have a DB mismatch, and just revert
to a basic wpt specified by lat-lon. This avoids inserting huge
legs by selecting a very distant navaid with matching ident

https://sourceforge.net/p/flightgear/codetickets/1814/
2018-10-08 16:40:25 +01:00
James Turner
b3bcfb084e Fix linux build: missing <cassert> include 2018-10-08 16:04:51 +01:00
James Turner
c450fa9f4e Flight-plan: improve GPX loading
- support elevation values
- parse the first/last points in case they are airports, and set
as the plan airports in this case.

https://sourceforge.net/p/flightgear/codetickets/2066/
2018-10-08 15:09:46 +01:00
James Turner
22c5c456cc Launcher flight-planning: UI to sync initial location
Show a prompt message to ensure the initial startup location matches
the flight-plan departure airport.

https://sourceforge.net/p/flightgear/codetickets/2068/
2018-10-08 13:31:33 +01:00
James Turner
290261d1ae Launcher flight-planning, allow GPX loading
https://sourceforge.net/p/flightgear/codetickets/2067/
2018-10-08 13:30:46 +01:00
James Turner
28f55889b0 Fix launcher ratings order and labelling
Had a dumb string naming glitch, and also we didn’t check for the
ordering of ratings being different when dealing with packaged
aircraft.
2018-10-08 12:31:27 +01:00
Bertrand Coconnier
8e05816b43 Bug fixes for JSBSim atmosphere model at very high altitudes
* Disables dew point transmission as the humidity model is not handling the case where the vapor saturation pressure gets higher than the ambient pressure.
* Removed computations for temperatures at very high altitudes as they don't match with the rest of JSBSim atmosphere model.
2018-10-06 19:24:06 +02:00
James Turner
6589c71f62 Tweaks to HID local descriptors 2018-10-04 23:21:05 +01:00
James Turner
1c08ca0e2d Launcher: don’t update already updating aircraft 2018-10-04 21:22:05 +01:00
James Turner
abbaf8f640 HID input: allow descriptors from XML
This allows ignoring the USB-supplied descriptor in favour of our
own, which might considerably better or less broken at least.
2018-10-04 17:43:36 +01:00
James Turner
6366dea197 HID event-input debugging
Adding more debugEvents-enabled log output to HDI input
2018-10-04 12:17:01 +01:00
James Turner
96cce67040 HID input: fix multi-device Nasal support
Ensure each laoded device gets a unique Nasal module name,
otherwise they combine with each other and Stuff Breaks(TM)
2018-10-04 12:17:01 +01:00
James Turner
1d20913b1f Fix initial launcher screen state
This showed up as environment page controls being active under the
summary logo image. Thanks to Nikolai Verner Christensen for spotting
the bug.
2018-10-03 08:41:50 +01:00
James Turner
40c0710f2b Change launcher pop-up to support scrolling
Use an internal window (instead of a real OS window) for popup choices,
and cap the maximum size. Use a scrollbar when the number of items is
too large, and adjust the position to fit in the window.
2018-10-02 14:19:14 +01:00
James Turner
cce3ae0268 Launcher: tweak aircraft list key handling 2018-10-01 14:22:48 +01:00
James Turner
c8ed3f02fe Close & delete telnet (props) channels on close 2018-10-01 13:52:01 +01:00
James Turner
9723f26f23 MirrorPropWebSocket: improve node recycling
Adjust logic for node recycling so common patterns observed with
remote canvas work correctly (remove + add of same nodes).
2018-09-30 10:16:31 +01:00
James Turner
2d348bd641 Change CAVOK visibility to 9999.0 metres
This should trigger automatic computation by AW.
2018-09-29 12:47:29 +01:00
James Turner
a66f0243bf Use GetUserPreferredUILangauges on Windows
This should accurately reflect the user's language preferences in the control
panel, unlike the previous method.
2018-09-28 12:09:24 +01:00
Scott Giese
994b752a27 Bug Fix #1999 missing "break"-s.
KLN89 case statements failing through.
Confirmed break is necessary to avoid text overlap.
Resolved.
2018-09-28 00:24:58 -05:00
James Turner
28629b65f2 Property mirror: handle request for missing nodes 2018-09-27 22:39:39 +01:00
James Turner
22bf5eb6e5 Launcher: tweak alignment of thumbnails
If the thumbnail is less than 172px wide, centre in the available
space. This ensures consistent alignment of the main content (name
and aircraft description)
2018-09-27 15:23:14 +01:00
Richard Harrison
54ba92afd8 Fix null pointer dereference during startup
(may happen at other times, but definitely happened to me on startup)
2018-09-25 16:53:06 +02:00
James Turner
8b25244d90 Performance: cache TCAS nodes on AI aircraft
Removes some remaining hot property lookups each frame
2018-09-24 15:34:20 +01:00
James Turner
421a5601c1 Launcher state naming fix (parked vs parking)
Ensure both ‘parked’ and ‘parking’ are handled by the launcher display
code and auto-state-selection logic.
2018-09-24 14:52:32 +01:00
James Turner
eb70f5edd4 Mac build fix for updated SDK 2018-09-22 17:23:50 +01:00
James Turner
518d3cbd0f Tweak launcher update timer to sleep the CPU
Fix the launcher keeping the main thread busy all the time (use a non-
zero timeout to ensure the dispatcher sleeps a bit)
2018-09-20 11:03:47 +01:00
James Turner
098c489ae0 Make —parking-id an alias for —parkpos 2018-09-20 10:26:48 +01:00
James Turner
110aec6039 Tiny code cleanups while doing other changes 2018-09-18 17:34:23 +01:00
Richard Harrison
4eaeb594ab NavDataCache: do not write to db in read-only mode 2018-09-15 18:06:23 +02:00
Bertrand Coconnier
3889af3170 Fixed compilation errors due to the synchronization of JSBSim 2018-09-15 17:00:27 +02:00
Bertrand Coconnier
6cc3d14032 Sync'ed JSBSim
- Fixed the Calibrated Air Speed (CAS) computations for supersonic velocities
- Fixed the Nlf (Normal load factor) sign
- Nlf can now be specified as an initial condition via the property ic/targetNlf
- Added blocking sockets to the input features
- Added a property to piston engines to get the AFR (Air to Fuel Ratio)
- Added conversion from m/s to ft/s
- Restored the initial conditions for engines running (-1 means all engines)
2018-09-15 16:45:42 +02:00
James Turner
ec0b515864 Whoops, fix a bad typo. 2018-09-15 10:57:02 +01:00
James Turner
72e1737aa6 Reset: wipe the Effect UniformCache 2018-09-13 23:52:52 +02:00
James Turner
47d33b5de3 Fix disabled appearance of ToggleSwitch 2018-09-12 12:04:38 +02:00
James Turner
43e3d7ef38 Electrical system: cache property nodes
Remove some hot spots in the electrical simulation, by caching
property nodes in two places.
2018-09-10 10:45:58 +01:00
James Turner
14a1390a68 Crash fix: warn doing fallback for heliport runways
Due to an apt.dat bug, EGEL (Coll) is actually a heliport (Eddystone
lighthouse) with zero runways. Guard against this case to avoid a
crash.
2018-09-10 10:44:49 +01:00
James Turner
ef98b667b4 AI: cache radar properties as nodes
When many AI objects, the cost of looking up the radar properties
for each object, each frame, is significant.
2018-09-09 15:24:52 +01:00
James Turner
ec488bf204 Launcher: fix missing translation annotations
Thanks to Sidi Liang for catching these.
2018-09-09 14:52:54 +01:00
James Turner
9549ac8027 Build fix: missing headers from project 2018-09-09 13:43:06 +01:00
James Turner
72239c9a52 Code cleanups while checking reposition performance
Some C++11 fixes and give FDMShell, Reply a subsystem-name
2018-09-09 13:42:51 +01:00
James Turner
f39b81c872 Launcher: update Advanced-weather handling
Use the information from Environment/environment.xml to init the
local-weather control properties.
2018-09-07 15:56:10 +01:00
James Turner
0747c2b373 Fix for a flight-plan / delegate crash
Catch a specific issue (-1 index not permitted for fp.current in Nasal),
but also catch
2018-09-07 15:17:55 +01:00
James Turner
e7f2c1439c Fix some integer signed-ness warnings 2018-09-06 17:12:12 +02:00
James Turner
35c5be004f Reduce CPU hit in FGTaxiSegment::unblock
size() is O(N), empty() is constant time.
2018-09-02 19:56:35 +01:00
James Turner
95be7220a2 Merge /u/martymac/flightgear/ branch clang7-FreeBSD into next
https://sourceforge.net/p/flightgear/flightgear/merge-requests/141/
2018-09-02 18:20:36 +00:00
Ganael Laplanche
63d6f0218b Use nullptr instead of NULL 2018-09-02 14:17:26 +02:00
Richard Harrison
7795ba60ff Added time statistics for the simulation host.
These are the time statistics that are the simulation code, which is basically everything except the rendering.

For a while I've wondered how efficient each of my JSBSim models are, and how much of our valuable frame time is spent on simulation modules.

Ideally the simulation modules should be taking 2-3ms, anything longer indicates a need to consider optimising things more.

These are the new properties that are added by this change:

/sim/rendering/sim-frame-count        Number of frames since start (or last time
/sim/rendering/sim-frame-count-reset  Reset statistics. Can be useful to reset monitoring after a slow startup
/sim/rendering/sim-host-avg-ms        Average amount of time spent in the "simulation" rather than rendering. This attempts to take into consideration the
                                      frame rate throttling but when throttled this figure is less reliable.
/sim/rendering/sim-host-total-ms      Total milliseconds since reset
/sim/time/frame-wait-ms               Current frame wait to meet throttling rate.
2018-09-02 13:47:55 +02:00
Richard Harrison
8271bb0456 TACAN: Add support for setting TACAN by frequency
set instrumentation/tacan/selected-mhz to the required frequency and the channel will be correctly set based on frequency matching in the TACAN db.
2018-09-02 13:39:52 +02:00
Richard Harrison
c923ae5b32 Set the active dialog property to the one that is on top after a dialog is closed 2018-09-02 12:27:31 +02:00
James Turner
1eab1722e5 Fixing some Clang warnings (C++98-isms) 2018-09-02 10:07:09 +01:00
James Turner
0d58220580 Flightplans: expose remaining new methods to Nasal 2018-09-02 10:06:43 +01:00
James Turner
0bb67136ab Launcher: only submit a FP when requested
Add an explicit toggle switch to the planning page so we don’t
always set an empty plan.
2018-09-02 09:32:13 +01:00
James Turner
5312ed9071 Launcher: allow copying the raw command line 2018-09-02 09:18:46 +01:00
James Turner
5ae818e526 Launcher: fix a compile error for Stuart 2018-09-02 09:18:21 +01:00
Ganael Laplanche
2756735d0c Fix build with clang 7 on FreeBSD 12-CURRENT:
error: reference to 'stack' is ambiguous

(see: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=230502)
2018-09-01 22:28:41 +02:00
Ganael Laplanche
ff69754756 Fix build with clang 7 on FreeBSD 12-CURRENT:
src/AIModel/AIFlightPlanCreatePushBack.cxx:96:48: error: ordered comparison between pointer and zero ('FGTaxiNode *' and 'int')

(see: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=230502)
2018-09-01 22:27:07 +02:00
James Turner
525cfadfa3 Reset: persist USERARCHIVE settings
Save user-setting properties to disk before beginning a reset, so
they are restored correctly.
2018-09-01 19:21:47 +01:00
James Turner
09fdfe358c Reset: ensure Nasal shutdown is clean
Some improvements / bullet-proofing while trying to track down the
slow-on-reset issue.
2018-09-01 18:53:45 +01:00
James Turner
5cc9b4f127 Launcher: remove some debug output 2018-09-01 18:53:45 +01:00
James Turner
b210f2021d Launcher: indent location detail heading text.
As suggested on the devel list, this looks more comfortable with a
margin set.
2018-09-01 18:53:45 +01:00
James Turner
776588066a Launcher: shrink sidebar height further
Since the icons have some margin included, go to a really small margin
external to this, gets us down to 560px vertical here.
2018-09-01 18:53:45 +01:00
James Turner
e6a3b9c012 Extend Nasal FlightPlan API for new members
Cruise alt/speed, remarks and callsign are now exposed and settable
from Nasal. Duration and route path still to be done.
2018-08-30 16:40:16 +01:00
James Turner
40d5d918ba Allow local acft to override packaged acft
When an explicit aircraft-dir is set, check this location before 
checking installed packages. This allows setting —aircraft and 
-aircraft-dir to correctly take precedence over a package.
2018-08-30 15:23:45 +01:00
James Turner
ec7816a565 Reduce the launcher minimum vertical height 2018-08-30 14:41:22 +01:00
James Turner
b184a7f06e Unify SGGeodVec definition 2018-08-29 14:55:23 +01:00
James Turner
7fe11b800a Launcher: use a more robust resource path
Some version of Qt seem to dislike the qrc:/// format, so use the
single-slash format here.
2018-08-28 23:35:38 +01:00
James Turner
47847a5a57 Fix an assert in debug mode 2018-08-28 23:34:55 +01:00
James Turner
41687767b9 Translations looked up correctly
Tweak both the launcher and main locale lookups, to tolerate the
different region suffixes encountered in reality.
2018-08-28 23:34:44 +01:00
James Turner
2329654e3b Disabling translations is tricky. 2018-08-28 17:12:31 +01:00
James Turner
61f33e0195 One more fix for translations-disabled case 2018-08-28 16:32:23 +01:00
James Turner
f99a25ba7f Fix build when translations are not defined 2018-08-28 16:15:26 +01:00
James Turner
df7e13d734 Flight planning in the launcher
Still evolving but usable to import or build a route now
2018-08-28 12:23:01 +01:00
James Turner
331939f640 Reduce level of some debug output 2018-08-28 12:23:01 +01:00
James Turner
e062026d9c UI: small fixes to various controls
Especially, add return key handling to many editing controls
2018-08-28 12:23:01 +01:00
James Turner
f33b15575f Navaid search: optionally constrain results 2018-08-28 12:23:01 +01:00
James Turner
f0c48110d3 Units model knows about frequency units 2018-08-28 12:23:01 +01:00
James Turner
cd0b493426 Base diagram can draw airways 2018-08-28 12:23:01 +01:00
James Turner
69dbfc0a27 Core airway and flight-plan enhancements
Add better airway support, fix various issues with VIA, and add
parsing / generation of ICAO route strings. Also fix the
serialisation of flight-plans with airway enroute segments, so these
can be restored correctly.
2018-08-28 12:23:01 +01:00
James Turner
5c9771fb00 Airport tweaks for flight-planning 2018-08-28 12:23:01 +01:00
James Turner
f4b98cf204 Fix CMake dependencies for translations
When only building the fgfs target (which IDEs tend to do), we didn’t
update the translations. Add an explicit dependency to remedy this.
2018-08-28 12:04:56 +01:00
James Turner
eaa2ed5cbb Launcher translations enabled
Translations are build into the executable at compile time, providing
FGData is available during the build.
2018-08-27 13:20:23 +01:00
James Turner
5bb3f10ba1 Linux / GCC compile fixes 2018-08-26 15:39:30 +01:00
James Turner
e3d032942e Move aircraft-performance code into a public API
Upcoming flight-planning changes want to use the perf computation code
in route-path, so move it to a public class, and implement some of the
missing functionality, especially correct GS computation for altitude.
2018-08-26 14:39:42 +01:00
Michael Danilov
e425f74a7d Fix crash on invalid(?) fallback model id. 2018-08-25 18:43:05 +05:00
James Turner
a419a80de4 Clang/C++11 warning fixes 2018-08-20 02:59:23 +01:00
James Turner
f54cba9586 Fix a warning, remove unused 2018-08-20 02:58:12 +01:00
James Turner
9848930e16 Fix translations context for some strings 2018-08-19 16:50:38 +01:00
James Turner
3f5a0a47ad Improved build.h generation (each build)
Use a custom_target to recursively invoke Cmake at build time; this
ensures the build ID and Git revision are always up to date.
2018-08-19 16:06:16 +01:00
James Turner
8b72229ffd C++11 improvements in Mac event-input code 2018-08-19 12:34:47 +01:00
James Turner
09918a6862 Fix Nasal duplicate init
Also ensure Nasal reset is handled correctly (requires corresponding
SimGear commit)
2018-08-19 12:34:27 +01:00
James Turner
26bc3713b5 Changes for SimGear subsystem add/remove tracking
Since the subsystem manager tracks group state, it now binds/inits
automatically. This means groups which create subsystems during init
no longer need to manually bind() them.
2018-08-12 11:18:50 -07:00
James Turner
f5117109fe Load translations from XLIFF format
When an <xliff> entry is present inside a locale specification,
this takes precedence over the legacy translations.
2018-08-12 11:18:50 -07:00
James Turner
d534a5ba36 Move build-ID variables to their own header
This is to reduce rebuilding by changing version.h needlessly, since
only a few places use the build ID info.
2018-08-12 11:18:50 -07:00
Richard Harrison
8ac8446256 GUIDialog: attempts to fix segfault
- change to get property node rather than calling set string.
- only set dialog name on mouse down event; (Scott's suggestion)
2018-08-12 10:43:20 +02:00
James Turner
e24134f34a HID-input: fix crash with null manufacturer name
https://sourceforge.net/p/flightgear/codetickets/2041/
2018-08-10 15:11:32 +01:00
James Turner
696c95d612 Fix passing —-config files via the launcher
Curt found this, allow using --config from the launcher additional
settings box.
2018-08-10 12:51:51 +01:00
Richard Harrison
518fb79e01 PUI Dialogs fixes
- fix double zoom on mouse wheel in map
- change getName() to return const char* to see if that fixes the crash in linux.
2018-08-10 02:00:38 +02:00
James Turner
c4e4f83030 Launcher: hide sidebar tooltips when button updates
Happens with Fly! button when refresh or update occurs.
2018-08-08 11:30:38 +02:00
Richard Harrison
c13bfe2722 PUI: window (FgPopup) handling changes
- I think I've fixed a long standing problem with clicks traveling through windows and bringing the dialog window underneath to the foreground.

- Added /sim/gui/dialogs/current-dialog that contains the name of the currently active (in front) dialog window.

- Changed dialog-open to bring a dialog to the front if it is already open.
2018-08-07 18:54:29 +02:00
Richard Harrison
6513dc1137 Added better AI handling of replay - part of the new carrier handling in replays. 2018-08-07 18:54:29 +02:00
Stuart Buchanan
e43fe82094 Fallback AI model implementation
Aircraft can now set a /sim/model/fallback-model-index property that is transmitted over the MP network.

Receiving clients use this as an index into AI/Aircraft/fallback_models.xml to determine a model to use if the model path (/sim/model/path) cannot be found under Aircraft or AI/Aircraft.  This allows aircraft developers to identify a suitable fallback model to be used for those who do not have their aircraft installed.
2018-07-27 19:51:37 +01:00
James Turner
23196184cc add missing assert 2018-07-27 19:43:42 +01:00
James Turner
d2c3ecace1 Fix PNG sRGB iCC warning 2018-07-27 08:26:38 +01:00
James Turner
78a3e8d979 Expose performance/ICAO planning data to QML 2018-07-26 23:08:49 +01:00
Edward d'Auvergne
f8c2cb5284 TestSuite: Migration of the old Navaids tests to the CppUnit framework.
This test suffers from significant bit-rot (it is designed for operation prior
to the NavDataCache), so it is deactivated.
2018-07-26 15:52:07 +02:00
Edward d'Auvergne
02c3c6dc97 TestSuite: Migration of the old GPS tests to the CppUnit framework.
As this code has significant bit-rot and requires a lot of work to compile and
run again, it is currently deactivated.

The test also writes to the files "/Users/jmt/Desktop/airways.kml" and
"/Users/jmt/Desktop/procedures.kml" and would need to be modified to write to a
temporary directory and the file contents reread and checked by the test.
2018-07-26 15:52:07 +02:00
Edward d'Auvergne
fff923d2f4 TestSuite: Migration of the HIDInput tests to the CppUnit framework.
The extractBits(), signExtend(), and writeBits() functions of the anonymous
namespace in Input/FGHIDEventInput.cxx have been shifted out of the namespace
and are now exposed via the header.  This is needed as
<Input/FGHIDEventInput.cxx> cannot be imported within the CppUnit
infrastructure, as it is already built into the run_test_suite binary.
2018-07-26 15:52:07 +02:00
Edward d'Auvergne
8d0db45c51 TestSuite: Shifted the non-functional src/GUI/layout-test.cxx file to the attic. 2018-07-26 15:52:07 +02:00
Edward d'Auvergne
0b2152a8ad TestSuite: Removal of some ancient, unused test files.
These include Scenery/{maptest.cxx, test.cxx} and Time/{test_event.c, ttest.c,
win32test.c}.  These files, essentially untouched since added in 1999, are not
useful for conversion for the test suite.
2018-07-26 15:52:07 +02:00
Edward d'Auvergne
dbe7c90115 TestSuite: Shifted the YASim atmosphere test into the CppUnit framework. 2018-07-26 15:52:07 +02:00
Edward d'Auvergne
ba5b472705 TestSuite: Elimination of the now unused ENABLE_TESTS CMake variable. 2018-07-26 15:52:07 +02:00
Edward d'Auvergne
feb854946e TestSuite: Complete removal of FG_TESTLIB. 2018-07-26 15:52:07 +02:00
Edward d'Auvergne
3e4132e660 modalMessageBox: Support for the runtime headless mode.
The caption, message, and additional text are instead output via SG_LOG().
2018-07-26 15:52:06 +02:00
Edward d'Auvergne
4699939275 Globals: Initial support for a runtime headless mode. 2018-07-26 15:52:06 +02:00
Edward d'Auvergne
b0c5a5481d TestSuite: Migration of the autosaveMigration tests into the CppUnit infrastructure. 2018-07-26 15:52:06 +02:00
Edward d'Auvergne
63d751c15e TestSuite: Always capture OSG logging.
The NotifyLogger class from src/Viewer/fg_os_osgviewer.cxx has been shifted into
a simgear header file so that it can be reused within the test suite.
2018-07-26 15:52:06 +02:00
Edward d'Auvergne
acb3307a1a TestSuite: Migration of the AeroMesh tests into the CppUnit infrastructure. 2018-07-26 15:52:06 +02:00
Edward d'Auvergne
7aa034bc80 TestSuite: Migration of the AeroElement tests into the CppUnit infrastructure. 2018-07-26 15:52:06 +02:00
James Turner
68141f3675 Launcher shows aircraft URLs
(in the details view)
2018-07-26 12:03:21 +01:00
James Turner
72d5f1efa0 Basic support for structured authors data 2018-07-25 13:58:48 +01:00
James Turner
4395f96b13 Launcher: Fix helipad selection 2018-07-25 09:27:43 +01:00