1
0
Fork 0
Commit graph

1528 commits

Author SHA1 Message Date
Stuart Buchanan
0c4544c1e1 Add Config Store and MFD Header display.
ConfigStore for storing and retrieving config settings (needs XML import/export)
Header display with 4 different header fields (all configurable)
Publisher for ADC and FMS.
2018-01-18 19:37:50 +00:00
Stuart Buchanan
f6f5efe9f4 Use Emesary interface rather than airportinfo() 2018-01-13 21:07:32 +00:00
Stuart Buchanan
cbb281759c NAV/COM Radio support
Add NAV/COM 8.33MHz radio support and integration
with the property trees for radios.

Also general cleanup.
2018-01-13 18:53:06 +00:00
Stuart Buchanan
ab8774a3e0 Extend MFDPageController to handle Emesary register 2018-01-08 21:39:39 +00:00
Florent Rougon
a57aed195e Add-ons: pass the addons.Addon ghost to main() instead of the base path
The addons.Addon instance (ghost) is much more interesting than its base
path. The base path is immediately accessible from the addons.Addon
instance using its 'basePath' attribute. The addons.Addon instance
allows main() to easily access essentially all of the add-on metadata,
including the add-on identifier, which makes it possible to write
main.nas without hardcoding the add-on id at all.

This is an incompatible change of course, so better do it now than
later.
2018-01-08 09:55:55 +01:00
Stuart Buchanan
73424c1791 Update NAV/COMM frequencies from properties
- Add new Emesary notification type for NAV/COM data
- Create Update/Publish interfaces using Emesary from properties
- Use interfaces to drive updates to EIS and NAV/COM frequencies
- Change the PageGroupController to a "proper" MFD page
2018-01-05 16:37:39 +00:00
Stuart Buchanan
ad77dc2f9c Modify FG1000 EIS to use Emesary,
- New Emesary notificaion type for engine data
- New Canvas PFD UI Elements - Pointer, Rotating
- Upate EIS to use above.
2018-01-03 20:24:41 +00:00
Stuart Buchanan
9eb91171b4 FG1000 Nearest Airports page
- DTO MapStructure layer to provide a DTO line to a lat/lon
- Support for scrolling lists in the PFD/GroupElement
- Support MAP (NavigationMap) and ENGINE (EIS) soft-keys from other pages.
2017-12-31 16:10:52 +00:00
Richard Harrison
cc152b67ad Emesary: modify bridge to use new MP properties; or to allow the property base for all bridges within a model to use.
By separating out the bridges this could be used in the future to transmit Emesary properties at a different rate. It is one of the future possible methods to improve MP communications and dual/multi controls
2017-12-28 01:25:01 +01:00
Richard Harrison
4e0483c9e8 NASAL: fix new truncateAt method to handle nil ptr errors during execution 2017-12-28 01:13:06 +01:00
Richard Harrison
79dc657170 Emesary: ensure that MPStringMaxLen initialized to default value in OutgoingBridge constructor 2017-12-28 00:15:15 +01:00
Stuart Buchanan
475fd50585 PFD UI Elements and NearestAirports page 2017-12-27 19:51:54 +00:00
Florent Rougon
c535306b3d Add-ons: simplify loading using the new API, set the 'loaded' flag
Also:
  - use the namespace __addon[ADDON_ID]__ when loading an add-on's
    main.nas file (previously, the namespace used was __addon[i]__ where
    i is 0 for the first registered add-on, 1 for the second one, etc.);
  - use logprint() instead of printlog(), because the former writes a
    more helpful source file and line number for the log call in
    fgfs.log (i.e., not always src/Scripting/NasalSys.cxx...);
  - remove the listener once it has been fired;
  - add documentation in Docs/README.add-ons.
2017-12-08 00:37:21 +01:00
Stuart Buchanan
3d31775ff3 Initial commit of FG1000 MFD 2017-11-24 23:04:46 +00:00
Richard Harrison
28fbda2e2a Emesary changes to better support GeoEventNotifications.
A GeoEventNotification can be used to notify all other MP craft (that are connected to the bridge) of AI objects or ballistic items that are present on the local player's machine. For example tankers, dropped payloads, missiles, carriers.

Changes

- Fix transfer string encoding for bridge. If the string contained untransmittable characters the length was wrong. Change to use the valid characters from BinaryTransfer.

- Fix bug transferring negative numbers.

- Add method to notification to provide the type key to be used to decide if a non distinct message should be added to the queue; rather than relying on the simple type.ident. This allows multiple notifications of the same type to be non distinct but also be transmitted

- Allow the maximum size of the mp string to be defined per bridge; rather than a system wide value. This allows the bridges to have their size tuned to match expected requirements; for example a bridge that is transmitting GeoEventNotification may need a lot more space than a bridge that is transmitting property sync notifications.

- Improve error message when out of space (due to the maximum string length)

- add trace option to bridges to aid debugging of transmitted values. This will produce verbose output.

- Add UniqueIndex to GeoEventNotification; to allow for multiple non-distinct notifications to be transmitted concurrently. This overrides the GetBridgeMessageNotificationTypeKey to include the UniqueIndex
2017-11-18 12:46:37 +01:00
Stuart Buchanan
1e69f3eb75 Fix handling of multiple MFDs
Found by chance during code read.  Untested, but surely correct.
2017-11-17 15:53:26 +00:00
Richard Harrison
8dafff9933 MFD framework - add support for Emesary
Allow a MFD to be controlled via Emesary notifications (notifications.PFDEventNotification);

Notification needs to be constructed with the following parameters;

1 - MFD designation (text; name of MFD)
2 - MFD identity (int, id of the MFD within the model). Default 1; same as used when creating the MFD
3 - Event type (PFDEventNotification.SoftKeyPushed, notifications.PFDEventNotification.ChangeMenuText
4 - Event parameter.
  a) for PFDEventNotification.SoftKeyPushed an int identifying the button
  b) for notifications.PFDEventNotification.ChangeMenuText a hash array containing the menu ID and the new text (e.g. [{ Id: 1, Text: "NNN"}])

Method obj.PFD.RegisterWithEmesary(emesary.GlobalTransmitter) need to be called to connect the MFD to a transmitter
2017-11-16 02:57:13 +01:00
Richard Harrison
08fd851489 Theme rework.
Change fonts; make use of the new feature to allow fonts to be specified using property from dialog xml.

Ensure that all fonts are defined within the style.
2017-11-12 16:57:39 +01:00
Stuart Buchanan
4bd57492f4 Add Lat/Lon grid MapStructure layer. 2017-10-15 21:54:05 +01:00
Stuart Buchanan
d84c527ca7 Canvas MapLayers for Airport
Add RWY, TAXI, TWR, PARKING map layers
Add new static position controller
Update Select Airport dialog to use new MapLayers.
2017-10-13 17:38:27 +01:00
Stuart Buchanan
e38ec03c60 Add STAMEN layer. Patch by Slawek MIKULA. 2017-10-02 20:34:31 +01:00
Stuart Buchanan
a622f6f37e Add zoom limits for SlippyMap layers 2017-10-02 20:25:11 +01:00
Stuart Buchanan
5ec53b4c36 Fix FIX label location. Patch from Slawek MIKULA 2017-10-02 20:22:06 +01:00
Stuart Buchanan
b5c67d82bc Fix minor compilation bug in geo.nas 2017-10-02 20:21:37 +01:00
Nikolai V. Chr
4621d0a5d4 Fix for setting individual attributes in geo.Coord 2017-10-02 12:04:34 +02:00
Stuart Buchanan
2fbc1dc491 Add VFR charts to Canvas Maps
Also add limits to zoom function.
2017-09-28 18:11:41 +01:00
Stuart Buchanan
85b7665c19 Add Canvas Map Support for Slippy Map
- Include OSM and OpenAIP in the canvas-map dialog.
2017-09-28 15:38:03 +01:00
Thorsten Renk
91db77595d Some (pretty hot) volcano code - general management routines, Kilauea and Stromboli worked out as examples, WIP 2017-09-24 18:08:36 +03:00
Richard Harrison
5ca84cbfdf Revised classic theme to make it use better fonts and colours. 2017-09-18 00:48:20 +02:00
Richard Harrison
434d4fde90 Multiplayer chat : possibly fix the popup dialog getting stuck. 2017-09-18 00:45:15 +02:00
Richard Harrison
bc71bf297e Add Property / object update manager to props
Manage updates when a value has changed more than a predetermined amount. This makes updating displays (e.g. canvas), or performing actions based on a property (or value in a hash) changing by more than the preset amount.
2017-09-17 22:22:00 +02:00
Richard Harrison
91dc5d2a83 AI Tanker: notify any listeners that a new tanker has been added.
need to set /ai/models/model-added to the path of the tanker node when created.
2017-09-17 22:22:00 +02:00
Thorsten Renk
7df5690f08 ALS terrain overlay shaders, not yet used, terrain definitions will follow post-release 2017-09-16 09:44:18 +03:00
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
Richard Harrison
4ed25ac361 Emesary mp support
Add support for transfer string
Change Type to NotificationType as Type can be confusing
2016-04-12 23:25:47 +02:00
Richard Harrison
7fa52ea4ee Merge branch 'next-rjh' into next-emesary-mp-bridge 2016-04-10 00:38:48 +02:00
Richard Harrison
1ec48a966c Added Emesary Multiplayer bridge 2016-04-09 21:39:57 +02:00
Richard Harrison
f87afb2677 Add page indexes 2016-04-09 21:39:29 +02:00
Thorsten Renk
5134fa2a61 AW drives diurnal terrain temperature differences 2016-04-08 10:49:55 +03:00
Richard Harrison
54165c213f Added Emesary and AN/SPN-46 ACLS
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.
2016-04-02 00:13:35 +02:00
Michael Soitanen
0a4d099dc7 ND: Position trend vector. Correct drawing in case of small radius. 2016-03-28 15:26:27 +02:00
Thorsten Renk
c2ac3b8e13 Add shrub landclass to AW convective definitions 2016-03-26 09:00:08 +02:00
Erik Hofman
0d623d5f5e Add the option to the Debug menu to save the video configuration file 2016-03-21 11:53:19 +01:00
Stuart Buchanan
221235063b Add button bindings for engine to joystick config
At the suggestion of Gilberto AGOSTINHO, add
button bindings for throttle, mixture and prop
to the joystick configuration dialog.

Specific use-case is users of game-pads, but also
useful to users with a single throttle axis on their
joystick.
2016-02-10 22:21:18 +00:00
Gijs de Rooy
da50e51aa3 Fix #1823: prevent 16-bit overflow by navdisplay trend vector 2016-01-24 17:36:31 +01:00
James Turner
fddc972010 Warp/time-adjust GUI tweaks
- make t/T action press and hold, with some acceleration factor and
  clamping to a maximum rate. (Avoids confusing latching-mode of
  previous system(

- show the local time of day while adjusting.

Values are based on some experimentation, feedback welcome on the
mailing list.
2016-01-15 20:53:43 -06:00
James Turner
bd1fa5b201 (from Denk Padje)
a small patch here that uses math.round() instead of int() for "percent"
mapping in Canvas tooltip.
2016-01-15 19:35:48 -06:00
Thorsten Renk
3ab3ba72e6 Support for Aurora Boeralis for ALS skydome and Earthview 2016-01-10 10:07:21 +02:00
Florent Rougon
2cf6cf4a93 joystick.PropertyScaleAxis.parse(): copy the property name too
- Since joystick.PropertyScaleAxis instances have a 'prop' attribute
  indicating the property name, it seems logical to have
  joystick.PropertyScaleAxis.parse() set this attribute based on the
  property name in its argument ('p').

- This commit also tries to improve readability by using a 'bindingNode'
  variable instead of repeatedly calling 'p.getNode("binding", 1)'.
2016-01-09 07:56:47 +01:00
Florent Rougon
769a83e64f joystick.PropertyScaleAxis.parse(): always copy 'factor' and 'inverted'
- Commit 5bcf58c7d6 forgot to set the
  'inverted' attribute when there was no 'factor' node in the argument's
  'binding' node. Fix this.

- Also copy the argument's 'factor' value to the 'factor' instance
  attribute for consistency, since joystick.PropertyScaleAxis instances
  have such an attribute initialized in the constructor.
2016-01-09 07:35:23 +01:00
Florent Rougon
703639ec68 Remove inappropriate 'deadband' attribute from joystick.PropertyScaleAxis
As far as I can tell, the dead-band setting belongs to <axis> nodes, not
to <binding> nodes using property-scale. This can be seen in
do_property_scale()'s definition (flightgear/src/Main/fg_commands.cxx)
as well as in fgdata/Docs/README.Joystick.html.

joystick.PropertyScaleAxis creates <dead-band> nodes as children of
<binding> nodes in generated joystick binding files under
$FG_HOME/Input/Joysticks which, AFAICT, are completely useless and thus
confusing. The <dead-band> nodes should be created at a different level
to be effective (cf. FGJoystickInput::postinit() in
flightgear/src/Input/FGJoystickInput.cxx).

This commit removes the 'deadband' attribute from
joystick.PropertyScaleAxis, since it has nothing to do there IMHO.
2016-01-08 15:45:58 +01:00
Florent Rougon
5bcf58c7d6 Fix nuking of property-scale's default factor by joystick-config dialog
As can be seen in do_property_scale()'s definition in
flightgear/src/Main/fg_commands.cxx, property-scale rightfully uses a
default factor of 1.0. However, if a joystick axis' property-scale
binding has no 'factor' node defined, and one opens the joystick
configuration dialog, then PropertyScaleAxis.parse() creates an empty
'factor' node that implicitely gets a value of 0. This method is called
by joystick.readConfig() when the joystick-config dialog is opened. This
has the effect of rendering the corresponding joystick axis inoperant.

How to reproduce the bug:
  - take a joystick such as the SAITEK CYBORG 3D USB, with its default
    binding file from
    fgdata/Input/Joysticks/Saitek/Cyborg-Gold-3d-USB.xml (this file uses
    property-scale for the aileron, with no explicitely defined factor);
  - start FlightGear; move the joystick left or right while looking at
    the plane wings -> the ailerons move, it works fine;
  - now, open the joystick-config dialog and do the same test -> the
    ailerons don't move anymore and the 'Aileron' value at the bottom of
    the dialog stays at 0 (0.0 or -0.0...). Just opening the dialog to
    test the joystick has "corrupted" its setup! This is very confusing
    for users.

This fix corrects the problem by avoiding the apparently unneeded
creation of an empty 'factor' node when there is none inside the
<binding>. An alternative would be to create a 'factor' node with value
1.0. In any case, if someone later expands the joystick-config dialog to
allow modification of property-scale's factor, he should make sure to
use a default value of 1.0!
2016-01-08 12:04:39 +01:00
James Turner
8164811d9f Speed-up fix; now included in /sim/time/delta-sec 2016-01-05 23:25:55 -06:00
Erik Hofman
41562e4b87 Gilberto Agostinho:
I created a substantial quantity of new work in the New Regional
Textures project and I would like to ask if anyone could review and
perhaps commit them into FGDATA. The modifications are:

- New textures and material definitions for California
- New textures and material definitions for Mexico
- New material definitions for Central America
- New textures and material definitions for Southern Europe
(Mediterranean region: Portugal, Spain, south of Italy, Greece, coast of
Balkans)
- New airport grass texture (global)
- New airport grass texture for Latin America
- New American town texture (global)
- Small improvement to grass blade textures (to better fit the airport
grass texture)

If this will be committed, we must add a note thanking the United States
Geological Survey (USGS) for the satellite images of California (
http://www.usgs.gov/ ) to the Thanks file.
2015-12-30 17:13:18 +01:00
Thorsten Renk
4c4044b15c AW sets parameters for scattering phenomena 2015-12-21 13:49:23 +02:00
Gijs de Rooy
48fe7a838e Navdisplay: issue #1822, display altitude range arc on centered mode 2015-12-14 15:03:15 +01:00
Michael Soitanen
77abdbe7e8 NavDisplay: Wind direction in Boeing mode now have degree symbol. Position trend vector is not computed with groundspeed less than 100kts to remove possible error with lateral slope runways. Corrected postion trend vector lenght on range smaller than 10 nm 2015-12-10 17:19:20 +01:00
Michael Soitanen
676a40f912 NavDisplay: Added mode, when heading bug is always displayed regardless of track-heading switch. Switched off by default. 2015-11-30 13:34:54 +01:00
Gijs de Rooy
34b957e63b Navdisplay: add position trend vector to MAP 2015-11-30 13:29:44 +01:00
Gijs de Rooy
30aef3eee1 Navdisplay: magnetic variation for wind arrow by Michael Soitanen 2015-11-29 17:35:09 +01:00
Torsten Dreyer
00781db6c9 Small optimizations in local_weather
listener functions are called with changed node as arg,
using this spares a getprop()

Signed-off-by: Thorsten Renk <thorsten.i.renk@jyu.fi>
2015-11-27 12:10:28 +02:00
Rebecca N. Palmer
45c3eeb9ad Nasal: remove obsolete io.nas security
This has been superseded by the C++-level fgValidatePath
2015-11-22 11:22:22 +00:00
Thorsten Renk
04524c0cca Tentative improvements to AW gust modeling 2015-11-16 17:41:57 +02:00
Thorsten Renk
57c5bf1fbf Earthview loads only texture sheets actually used 2015-11-08 20:42:20 +02:00
Erik Hofman
34315227c1 Richard Harrison:
Add  generic version of a canvas MFD (based on the F-15)

It has a fairly simple class structure and hopefully is reasonably easy to understand; Thorsten's using it on the Shuttle and Hooray mentioned that it'd be a good idea to make it generic. It provides a device, that has pages and a set of buttons. The set of buttons control the page that is selected (i.e. a menu). Each page has its own set of menus. A menu defines a label and a page that is displayed. I intend to document it on the wiki once its added.
2015-10-26 12:56:11 +01:00
Torsten Dreyer
dd3390b3af Fix elevation bug for jetways
Thanks to Martin Herweg (d-laser)
2015-10-11 22:32:25 +02:00
Thorsten Renk
454fa8df8f More work on rendering lighting in ALS, public domain NOAA image resources are gratefully acknowledged 2015-08-12 11:31:05 +03:00
Thorsten Renk
a48dea9e48 Lightning for AW with ALS support - work in progress 2015-08-11 16:28:32 +03:00
Torsten Dreyer
1630bd8254 Merge commit '3feafef999aa79e87bea368cb19511413f06478b' into next
This was https://sourceforge.net/p/flightgear/fgdata/merge-requests/29/

minor correction in lag_adjust.nas (mp patch)
2015-06-17 10:44:27 +02:00
James Turner
47e14354c0 Merge commit 'b028a8ea13248aa97c3cc3a77fbb292c31147994' into next 2015-06-17 00:08:36 +01:00
janodesbois
3feafef999 minor correction in lag_adjust.nas (mp patch) 2015-06-15 01:11:59 +02:00
janodesbois
12af1482e7 little adjustements for the mp patch 2015-06-09 21:12:48 +02:00
Torsten Dreyer
dabaeea9fa Merge /u/tikibar/flightgear/ branch canvas_tacan into next
http://sourceforge.net/p/flightgear/fgdata/merge-requests/22/
2015-06-09 07:12:46 +00:00
janodesbois
b304d43d49 bug correction to the lag adjust nasal part, did things wrong when
simplifying the code
2015-06-08 18:23:34 +02:00
James Turner
563c098452 Change some Nasal logging to use logprint()
- avoids console output at default (WARN) log level from the C172P
2015-06-08 10:33:31 +01:00
Torsten Dreyer
19fe180e3e Merge commit 'e033ac2f106efd45155341f877242b448dd8ded5' into next
This is merge request #20
MP Patch first step fgdata part: nasal to check wich planes we are
displaying in the futur, with a distance check , one plane each frame.
2015-06-07 21:29:32 +02:00
John Williams
c6eab93660 Add canvas tacan display on VOR and APP modes in addition to MAP mode 2015-06-07 21:15:57 +02:00
artix
b028a8ea13 Some fix 2015-06-06 12:29:36 +02:00
artix
a6fe054946 Airbus style for MapStructure/navdisplay 2015-06-06 12:29:36 +02:00
janodesbois
e033ac2f10 FgData part for the MP patch, we allow lag compensation only if the mp plane
is close enough, we check only one plane each frame
2015-06-06 07:05:05 +02:00
Thomas Geymayer
7c3762108c canvas.gui: editingFinished signal for LineEdit. 2015-06-02 18:27:19 +02:00
Curtis L. Olson
1142bde5e9 Tomaskom writes:
I was playing with the target tracking and decided to fix an old bug that causes it to behave wrong at higher altitudes.

Background: the script continuously updates values in the autopilot to follow specified target aircraft (AI/MP). It is controlled directly through the property tree under /autopilot/target-tracking.

Issue: the script reads out true airspeed, but autopilot expects indicated airspeed. This is why at higher altitudes, the tracking always overshoots.

I fixed this by introducing an estimate on indicated airspeed of the target, using the ratio between local aircraft true and indicated airspeed.
I also fixed an issue where it ignored minimum speed setting and polished initialization by using props.globals.initNode() instead of dedicated presence check for every property (and also ensured the nodes have correct types, no more bool stored as double). And the last thing I changed was to increase the default tracking distance to a more sane value, with the original value of 0.05nm the tracking was unstable in heading with most aircraft and started oscillating.
With the changes I applied, the distance is now holding precisely at any altitude and with any winds.
2015-05-28 10:29:38 -05:00
John Williams
d88a359cd1 Add canvas display for TACAN; improve wind vector direction correction 2015-05-16 13:53:01 +02:00
Stuart Buchanan
b4d16682ce GUI Cleanup from Michael HABARTA. Part 3/3 2015-05-03 17:13:50 +01:00
www2
acb88337f2 add var to fillOpacity and strokeOpacity 2015-04-10 21:09:14 +02:00
www2
7b71a8f361 Add Alpha channel for fill and stroke 2015-04-09 00:51:24 +02:00
Rebecca N. Palmer
60da209425 Remove FG_SCENERY from Nasal allowed directories
This was insecure as Nasal could change it, and appears to be unused
2015-03-13 18:31:38 +00:00
Torsten Dreyer
404fff889b Merge commit 'refs/merge-requests/268' of https://gitorious.org/fg/fgdata into merge-requests/268 2015-02-22 21:49:12 +01:00
Torsten Dreyer
0cfddbcd9d Merge commit 'refs/merge-requests/271' of https://gitorious.org/fg/fgdata into merge-requests/271 2015-02-22 21:42:46 +01:00
Thorsten Renk
a401041637 Tentative bugfix for AW not considering gusty follow-up METAR reports 2015-01-14 10:04:42 +02:00
James Turner
e370899a93 Procedures: be defensive about STAR/approach choice.
Current GUI allows selected mis-matched STAR and approach. Low risk
fix is to detect and deal with this case by just routing direct. Real
fix involves a slicker GUI or inserting a route discontinuity (possible
in FG 3.6 hopefully)
2015-01-10 19:38:29 +00:00
James Turner
f786e57c96 Set new route-path / flightplan control values.
Propagation is done by the FMSDelegate so custom FMS/GPS
systems can trivially replace this behaviour.
2015-01-08 19:48:17 +00:00
Nikolai V. Chr
4b806a36c2 Added possibility to specify position to gui.popupTip 2015-01-04 18:36:18 +01:00
James Turner
da1316a74c Hitch/aertow updates fro D-NXKT
-fix a severe bug which led to unintended hitch releases;
-include the new JSBSim external force location variables;
-improvements for function closeHitch
2015-01-04 08:58:20 +00:00
Thorsten Renk
1ad3944b17 Two minor AW bugfixes - behaviour without terrainsampler restored and gusty winds in METAR corrected 2015-01-02 09:12:44 +02:00
Thomas Geymayer
d930e3f2fa Nasal: std.Vector: add 'contains' method (by onox). 2014-12-23 14:40:29 +01:00
Anton Gomez Alvedro
c108f3b988 Bugfixes and improvements to the Failure Manager
- Fix: runtime exception in remove_failure_mode()
  - Fix: keep failure & trigger status on teleport.
  - Fix: allow random failures from the gui to be enabled/disabled multiple times.
  - Fix: mcbf/mtbf are set to zero when they fire, so they can be reactivated from the gui.
  - Fix: string casts of several trigger types had syntax errors.
  - Usability: screen messages related to failures now use positive logic:
         "condition 100%" instead of "failure level 0%"
  - Performance: Time triggers now use internal timers, instead of requiring being polled.
  - Reviewed Trigger interface for more rational usage. reset() is replaced by arm()/disarm()
  - Added a subscription interface to listen to FailureMgr events.
  - Added an internal log buffer to keep a record of relevant events and present them to gui elements.
  - Several usability improvements to the FailureMgr Nasal API.
2014-12-21 12:39:52 +01:00
James Turner
6a763a0d77 Route-manager: fix approach transitions. 2014-12-19 17:02:55 +00:00
Philosopher
db36387a36 Nasal REPL: integrate with Canvas keyboard
Allows for focusing/unfocusing by clicking on the window or "desktop"
respectively.
2014-11-28 09:29:28 -06:00
Philosopher
c0713db911 Fix screen width compensation
The reason it didn't work for me is that
/sim/rendering/camera-group/camera/viewport/ does not seem to contain
the actual dimensions of the view window... which is odd. Instead I'll
use /sim/startup/[xy]size (and make it into a method so I don't have to
change 3 lines next time :). Now that it works (again), it looks so much
better. Thanks to Alexis Bory for the original idea.
2014-11-27 22:17:22 -06:00
Thomas Geymayer
7b279f1fd7 canvas.gui: ensure all LineEdit/ScrollArea methods are chainable. 2014-11-23 23:35:26 +01:00
syd adams
d9e9a65909 modified gui.nas to enable hiding tank on Fuel dialog 2014-11-19 12:14:18 -07:00
Thorsten Renk
a6ff6a6199 Undulatus-based AW clouds make use of transparency parameter 2014-11-17 13:35:48 +02:00
Thorsten Renk
403c35d544 AW domain-based clouds utilize transparency parameter 2014-11-17 12:59:48 +02:00
Thorsten Renk
4e9ba3e560 Basic ALS + AW infrastructure to use new cloud transparency parameter 2014-11-16 12:28:09 +02:00
Thorsten Renk
4e144a16bb AW uses detailed precipitation control, property rule adjusts precipitation illumination 2014-10-22 11:00:19 +03:00
Thomas Geymayer
33a9b73b5c Add std.Vector wrapper class (by onox). 2014-10-18 01:13:37 +02:00
Thorsten Renk
d1982846e1 AW produces snow when SN is specified in METAR string 2014-10-15 12:49:47 +03:00
Torsten Dreyer
61a6fee0db Canvas svg: use font-style and map LiberationFonts
- interprete the font-style attribute for text
- add a better font-mapper for Liberation Fonts
2014-09-10 16:51:12 +02:00
Thomas Geymayer
fd3bd5da20 canvas.gui: Basic InputDialog and some small tweaks. 2014-09-01 19:31:25 +02:00
Thomas Geymayer
246c480ea3 canvas.gui: Add a basic LineEdit for text input. 2014-08-31 19:40:14 +02:00
Torsten Dreyer
f3058a3f2e Canvas: add support for stroke-linejoin 2014-08-26 00:06:59 +02:00
Thomas Geymayer
2bce958f39 parsesvg: Improved clip and error handling.
- Ignore and warn for unsupported/invalid clip regions.
 - Correctly handle clip 'none'.
 - Use printlog everywhere instead of debug.dump and others.
2014-08-24 13:59:36 +02:00
Thomas Geymayer
a10e9c7b00 canvas.gui: simplify MessageBox and Aircraft center with core changes. 2014-08-05 00:22:14 +02:00
Thomas Geymayer
804b42cfa4 canvas.gui: Window input focus handling. 2014-08-04 23:48:29 +02:00
Thomas Geymayer
67229cbadc canvas.gui: handle visibility changes of widgets. 2014-07-21 00:28:44 +02:00
Thomas Geymayer
8aabd3726a parsesvg: support for rectangular clip/mask. 2014-07-19 21:44:38 +02:00
Thomas Geymayer
59edeea5c3 Aircraft Center: fix aircraft switching log message. 2014-07-12 18:10:36 +02:00
Thomas Geymayer
bb1ab2d975 canvas.gui: let widgets set layout size to allow user defined size hints. 2014-07-12 18:10:36 +02:00
Gijs de Rooy
2452ab0f5c Navdisplay: fix runway symbol 2014-07-12 17:56:48 +02:00
Gijs de Rooy
dd1e0cba46 Navdisplay: fix wind data display, add TCAS messages, move DME/VOR out of update() 2014-07-10 23:07:47 +02:00
Gijs de Rooy
1ba6af1284 Navdisplay:
- set z-index on layers
- correct PLAN range
- hide/show navaids on mode change
- display runway identifier
2014-07-08 12:28:26 +02:00
Gijs de Rooy
573de77cb8 Navdisplay: bug fixed and new features
- Correct z-index
- Add MAP CTR compass
- Fix active WPT color
- Hide wind data at low speeds
- Move code outside main update loop
- Correct ranges
2014-07-06 23:17:47 +02:00
Thomas Geymayer
db27e0972e canvas.Window: move/setSize/setPosition: support coords as vector. 2014-06-30 23:18:48 +02:00
Thomas Geymayer
c75869271e Aircraft Center: fixes for install progress in reopened windows.
Restore install progress indication after closing and reopening
Aircraft Center.
2014-06-30 18:16:22 +02:00
Thomas Geymayer
bc714fa39c canvas.gui: widget focus fixes and clean up. 2014-06-29 12:04:36 +02:00
Thomas Geymayer
f8bbc32d68 Aircraft Center: improve responsiveness.
Only show max 50 aircraft by default and provide a "Show More"
button. This prevents locking the GUI for up to nearly 15 seconds
with showing the list of all aircraft.
2014-06-28 13:18:57 +02:00
Thomas Geymayer
eb01ab7127 canvas.gui.ScrollArea: no need for double update of content size. 2014-06-28 13:18:56 +02:00
Thomas Geymayer
1864153b9a canvas.gui.MessageBox: Ensure path for saving selections exists. 2014-06-26 18:11:41 +02:00
Hyde Yamakawa
ece46ff679 Update canvas map symbols 2014-06-25 21:35:32 -04:00
Thomas Geymayer
15d3e8612d Canvas REPL: update for ScrollArea changes/remove unneeded code. 2014-06-26 00:55:36 +02:00
Thomas Geymayer
0338d82c55 canvas.gui.ScrollArea: fix (wheel) scroll behavior.
Rewrite the way scrolling for ScrollAreas is handled: Store
content position instead of scrollbar positions to keep position
on resize and promote moving the content instead of the contents
to as primary API.
Let the mousewheel scroll by fixed content offset instead of
scrollbar offset to make it actually usable (especially with
low scrolling distance).
2014-06-26 00:50:46 +02:00
Philosopher
b7f0b09df4 Canvas REPL: actually fix copy/paste/continue line 2014-06-24 20:10:32 -05:00
Philosopher
2c3f457281 MapStructure: avoid flickering labels/paths 2014-06-24 14:21:14 -05:00
Philosopher
7207f2e629 Canvas REPL: a few bugfixes 2014-06-24 14:15:42 -05:00
Thomas Geymayer
170079a22e canvas.gui: Draw tooltips on top of other windows/dialogs. 2014-06-24 15:34:03 +02:00
Thomas Geymayer
43f8ce0870 Add props.compileCondition to actually use exposed SGCondition. 2014-06-23 21:12:57 +02:00
Thomas Geymayer
4b00bb3067 canvas.gui: tweak label size hints and text color. 2014-06-23 21:12:26 +02:00
Thomas Geymayer
9e905228ef Nasal: respect color argument for debug._dump_prop 2014-06-21 12:09:34 +02:00
Thomas Geymayer
717c684dad tooltip: better error reporting on failed mapping. 2014-06-21 12:09:33 +02:00
Gijs de Rooy
9b4a1b52a4 Navdisplay: use true airspeed 2014-06-20 21:52:35 +02:00
Thomas Geymayer
a2aafc3b51 Canvas bug fixes.
- show canvas in a window
 - create window decoration also during pause
 - update content of ScrollArea on resize
2014-06-19 22:19:11 +02:00
Thomas Geymayer
351f67952c canvas.gui: Tweak size hints and MessageBox size. 2014-06-19 01:17:40 +02:00
Thomas Geymayer
e091ff9c40 Aircraft Center: show a warning message that it is experimental. 2014-06-18 17:25:15 +02:00
Thomas Geymayer
c03454a6b4 canvas.gui: MessageBox allow saving user selection. 2014-06-18 17:24:51 +02:00
Thomas Geymayer
5d723e6eab canvas.gui: Add checkbox widget. 2014-06-17 21:02:59 +02:00
Thomas Geymayer
e496ca56ab canvas.gui: Add MessageBox class.
Use canvas.MessageBox.critical/warning/information/question
to show a standard, but also customizable dialog box.
2014-06-17 17:16:02 +02:00
Thomas Geymayer
9933398a37 canvas.gui: missing return and minor color update. 2014-06-17 17:12:21 +02:00
Thomas Geymayer
c4d9310e33 canvas.gui: Remove old demo code. 2014-06-17 17:11:48 +02:00
Thomas Geymayer
b5dae5b567 canvas.gui: Button color tweaking. 2014-06-17 11:44:05 +02:00
Thomas Geymayer
8760036aa2 Aircraft Center: tabs for installed aircrafts. Buttons to switch aircraft. 2014-06-16 22:38:46 +02:00