1
0
Fork 0
Commit graph

1345 commits

Author SHA1 Message Date
Thorsten Renk
40d5f90f7d Fix AW METAR mode check for T-storms 2017-08-22 11:37:28 +03:00
Torsten Dreyer
e35ff1aa9a Don't complain about non-existant /addon property 2017-08-12 22:32:40 +02:00
Stuart Buchanan
2b072dd992 Use new C++ setValues/setChildren
Improve Nasal poperty access performance by
re-implementing props.nas functions in C++.
2017-08-06 21:16:26 +01:00
Richard Harrison
405eb73bb6 Emesary multiplayer bridge rework.
The primary goal of this work is to provide a alternative to multiplayer property transmission, one that is more efficient and event driven. By using notifications in the model bindings these control messages can be bridged and do not require extra code to implement dual controls.

Using this alternative permits the modeller much greater control of which properties are transmitted, how these are encoded, and how often the updates are needed.

Please remember that this is a use case for Emesary, it is not all that Emesary can provide and there are still many other uses for the event driven object oriented system that Emesary provides.

Briefly the changes are:

- New PropertySyncNotificationBase to permit property transfer between ownship and MP versions using notifications instead of the pre-defined MP messages. This gives a much more flexible way to seutp multiplayer property transfer - and can probably support more properties because of the more efficient packing. There is a corresponding parameter (/sim/multiplay/transmit-only-generics) that will only transmit the bare minimum of parameters; making more space for notifications.

- new AircraftControlNotification to allow for animation bindings in the model, these notifications can be easily bridged over MP thus adding a simple method to implement dual controls.

- more efficient packing of encoded notifications over MP saving roughly 30% (by using a much larger encoding space and also changing to use fixed length encoding). This breaks compatibility with previous MP bridges, however at this time I don't think anything is using the current code.

There can be different types of PropertySyncNotification (with unique ID's) sent at a different schedule (so you could have a 10 second update of very slow moving items). However bear in mind that the messages have a lifetime of 10 seconds to ensure receipt - so to optimise space would require > 15 seconds to make much difference, and that is very slow moving.
2017-07-23 16:05:43 +02:00
Torsten Dreyer
5c1f4a69f1 Introduce handler for --addon commandline switch
Requires flightgear commit f6698a0b1f9e8c0791314aa09cbe1625927ef3ff
to have property /addons/addon[n] populated
2017-07-18 12:14:50 +02:00
Torsten Dreyer
09bcc00b80 reset executable bit for nasal script 2017-07-18 10:57:13 +02:00
James Turner
3201c14768 Fix for sticking message tooltip.
Distinguish the popup types, and don’t allow mouse movement to change
the hide timer when the active tip is a message.
2017-05-30 00:20:14 +01:00
James Turner
cc14717930 Fix to Canvas-GUI window transparency
Separate the window titlebar from the main background area, so the
transparency of each can be set independently.

From Henning Stalkhe.
2017-05-29 08:24:22 +01:00
Thorsten Renk
2f99804dba More variation for the ALS aurora simulation, WIP 2017-04-27 14:18:55 +03:00
Stuart Buchanan
5c62d4663c Add Joystick Config dialog for individual engines 2017-04-20 21:06:42 +01:00
Erik Hofman
5049ebd0bc Prepare for windsock turbulence animation 2017-04-11 13:39:25 +02:00
Thorsten Renk
48768ee9d2 Earthview 2.1 - parallax mapping for cloud layer, lightning at night, Rayleigh scattering in atmosphere and minor bugfixes 2017-04-05 16:50:31 +03:00
Stuart Buchanan
6f2ccdd395 Add support for sprintf() formatting to tutorial
<message> tags can now contain sprintf() format
strings (%d, %.2f etc), with

<message-param>
  <property>/some/prop</property>
</message-param>

used as the substitute value.  Could be extended
in the future with perhaps Nasal evaluation?
2017-03-28 21:38:34 +01:00
Thorsten Renk
1fad428a27 Special purpose faster canvas text setting methods 2017-03-19 16:23:35 +02:00
Torsten Dreyer
ff77af8abe assign a name to the tooltip canvas 2017-02-20 19:22:53 +01:00
Stuart Buchanan
2473d667fd Use Festival TTS for tutorials 2017-02-11 21:49:00 +00:00
James Turner
a5cc57466f Merge /u/jsb1685/fgdata/ branch gui.nas into next
https://sourceforge.net/p/flightgear/fgdata/merge-requests/84/
2017-01-23 18:01:41 +00:00
James Turner
51e2ddc8ba Revert "Use new canvas Path rect/SVG support."
Don't use the built-in SVG/rect parser, since this bypasses creating
coordinate / command properties which some Canvas users rely upon.

This reverts commit 57a2d21ddf.
2017-01-23 17:51:39 +00:00
Henning Stahlke
962368eb2f Add yasim c.g. display to weight-and-fuel dialog. 2017-01-23 17:57:18 +01:00
Henning Stahlke
b568229f4a Handle missing property to avoid runtime error 2017-01-23 17:54:15 +01:00
James Turner
54abfe4874 Merge /u/prriley/fgdata/ branch next into next
https://sourceforge.net/p/flightgear/fgdata/merge-requests/81/
2017-01-04 14:20:43 +00:00
Patrick Riley
a3bbb029fa FG crashes from glideslope tunnel if runway id is empty string. This change defends against bad data. 2017-01-04 09:11:27 -05:00
Richard Harrison
ea32a92fe7 Generic MFD : Added optional parameter to update method
When using a data provider, or Emesary it is useful to be able to pass an optional element into the update method for the pages.
2017-01-04 02:19:32 +01:00
Florent Rougon
bc42bb5d55 gui.FileSelector: fix bug (initial dir parameter not working) 2016-12-30 02:22:23 +01:00
James Turner
57a2d21ddf Use new canvas Path rect/SVG support. 2016-12-16 19:34:16 +00:00
Thorsten Renk
a27a82b4ad Tentative fix for accelerometers using YaSim properties in JSBSim or optionally generated properties 2016-11-23 15:34:04 +02:00
Thorsten Renk
52e5592442 Replacement of blackout/redout implementation with a sophisticated model developed for military simulators - research and implementation by Nikolai Verner Christensen 2016-11-21 10:06:35 +02:00
Thorsten Renk
5c437d74cb Earthview 2.0 - support for normal maps, better upper atmosphere edge, cloud relief shader, improved dawn zone, horizon estimation, improved resource management,... 2016-11-17 20:54:32 +02:00
Gijs de Rooy
109e452424 Navdisplay:
- properly referencing the canvas namespace, so that the ND module can be separately included via io.include()
- moving the initialization of aircraft specific SVG elements into the navdisplay.styles file, and the corresponding Boeing/Airbus entries there (see initialize_elements())
2016-10-16 16:57:16 +02:00
Gijs de Rooy
d14b0e73ad Navdisplay: fix navaid ranges for Airbus 2016-10-09 14:12:41 +02:00
Gijs de Rooy
7d7294da89 Navdisplay: fix navaid ranges 2016-10-08 20:47:07 +02:00
James Turner
3834fcc36e Add a math.clamp function. 2016-08-20 18:33:12 -05:00
Thorsten Renk
8d6413796a Some preparation for Rio Visuals 2016-08-08 09:20:04 +03:00
James Turner
8d1e42e93f Merge /u/tikibar/flightgear/ branch next into next
https://sourceforge.net/p/flightgear/fgdata/merge-requests/70/
2016-08-04 09:54:06 +00:00
James Turner
84fa01a6d8 Hint to the user when we adjust on-runway start.
Still deciding if this is needed or in the right place, but
adding as an experiment, can be reverted if people don’t
like it.
2016-07-17 21:54:33 +01:00
John Williams
fc616b19a9 Restored missing markings in GS and centered VOR/LOC displays in APP and VOR modes for Boeing canvas ND 2016-07-07 12:42:55 -07:00
Thorsten Renk
ec89cde472 Change coordinates for orbiting AI object to JSBSim inertial definition for consistency 2016-06-02 11:36:17 +03:00
Richard Harrison
f171e41632 Added Emesary, AN/SPN-46 ACLS, and a Multiplayer Bridge
Emesary is a simple and efficient class based interobject communcation system to allow decoupled disparate parts of a system to function together without knowing about each. It allows decoupling and removal of dependencies by using notifications to cause actions or to query values.

Emesary is all about decoupling and removing dependecies, and improving the structure of code. Using Emesary you can more easily define the what rather than the how. By using what is essential an event driven system it is easy to add or remove modules, and also for extra modules to be inserted that the rest of the aircraft knows nothing about (e.g. FGCamera or the Walker).

see: http://chateau-logic.com/content/emesary-nasal-implementation-flightgear

The AN/SPN-46 is an ACLS implementation using Emesary. ACLS is the Navy's version of ILS.
---------------------------------------------------------------------------
There is also support for transmitting messages over MP which allows models to communicate with each other in a decoupled method using notifications. What happens is that bridged messags simply arrive at the Receive method of recipients in other models on other running instances without the need to do anything special.
2016-05-17 11:22:15 +02:00
Richard Harrison
94334ec5fc Generic MFD: Add Canvas NavDisplay
This links together the generic MFD and the NavDisplay; it allows a fairly easy method to add a Map page to an MFD device.

----------------------
See: http://wiki.flightgear.org/Canvas_MFD_Framework
----------------------
Instantiate parameters:
  1. pfd_device (instance of PFD_Device)
  2. instrument display ident (e.g. mfd-map, or mfd-map-left mfd-map-right for multiple displays) - used to map to the property tree
  3. layer_id: main layer  in the SVG
  4. nd_group_ident : group (usually within the main layer) to place the NavDisplay
  5. [optional] switches - used to connect the property tree to the nav display. see the canvas nav display.

To add a canvas nav display page simply do

me.some_page =  PFD_NavDisplay.new(me.PFD,"Situation", "mpcd-sit", "ID", "jtids_main");
2016-05-17 11:15:53 +02:00
Richard Harrison
56f6e4fd15 Remove debug and tidy up messages 2016-05-16 22:49:56 +02:00
Richard Harrison
4e351957df GeoEventNotification: add items from Models/Geometry 2016-05-16 12:13:58 +02:00
Thorsten Renk
7f3b94f8a4 Code to optionally instance and simulate the position of orbiting objects 2016-05-16 10:56:13 +03:00
Richard Harrison
b3cb0689b8 Emesary: tidy up default MP prooperty index and add droptanks to GeoEvent 2016-04-25 20:40:57 +02:00
Torsten Dreyer
b89eb0290a remove the infamous "A" console message 2016-04-24 11:12:18 +02:00
James Turner
91da4a1378 Lower default canvas Map debug level
Info-level should not log messages continuously, which some map
operations do, so lower the default to ‘debug’.
2016-04-17 18:16:08 +01:00
Richard Harrison
beb26236aa Emesary MP Bridge; optimisation
Encode the indexes and use add constants to remove hardcoded values
2016-04-17 11:32:19 +02:00
Richard Harrison
53dcb70e61 Encoded/Decode changes to use more appropriate methods. 2016-04-16 15:14:46 +02:00
Richard Harrison
1efe01a452 Fix so that the callsign is a method as most of the MP properties probably won't be fully populated when the incoming bridge is created. 2016-04-16 15:14:16 +02:00
Richard Harrison
db7ddba8ba New encoding scheme for transfer over bridge that is slightly more efficient in most cases. 2016-04-16 15:13:33 +02:00
Richard Harrison
bb24cfaec5 Change to be more generic 2016-04-12 23:25:57 +02:00