Aircraft Center
This article describes content/features that may not yet be available in the latest stable version of FlightGear (2020.3). You may need to install some extra components, use the latest development (Git) version or even rebuild FlightGear from source, possibly from a custom topic branch using special build settings: .This feature is scheduled for FlightGear 4.x. If you'd like to learn more about getting your own ideas into FlightGear, check out Implementing new features for FlightGear. |
This article is a stub. You can help the wiki by expanding it. |
Recently I've also been mulling the possibility of selecting
aircraft from an "in program" dialog similar to Fly II where you can climb up
to 35,000 feet in a 747 and then switch to a C172 :-) Seriously, even if we
did a full reset, it'd be nice to switch aircraft (3D models as well) and
fdm's on the fly (pun not intended).
— David Megginson ( Fri, 08 Nov 2002 18:01:41 -0800). starting the XML GUI; early implementors needed.
|
As we move forward with FlightGear development and future versions, we will be expanding the "in app" aircraft center. This dialog inside flightgear lets you select, download, and switch to any of the aircraft in the library.
— Curtis Olson (2015-02-17). Re: [Flightgear-devel] Citation II for base package?.
(powered by Instant-Cquotes) |
the goal here is to almost get rid of a centralised aircraft repo anyway, and have a decentralised development system with the only central point being the aircraft package manager for end users. Then 99% of people never care where the aircraft is stored while it’s developed.
— James Turner (2015-02-13). Re: [Flightgear-devel] FGDATA split without Aircraft. Addon in SVN.
(re)Suggesting a Submodule approach. (Re)Proposing a per-Aircraft
repository.
(powered by Instant-Cquotes) |
For all other aircraft, the intention for both these nightly builds and official releases is to use the aircraft catalog + package system, which is based around HTTP rather than an SCM system. I’m working at the moment on integrating the client parts into the launcher GUI.
— James Turner (2015-03-11). Re: [Flightgear-devel] FGDATA and Jenkins.
(powered by Instant-Cquotes) |
Package management |
---|
Background |
Implementation |
Front Ends
|
Related efforts |
Background
Note Also see The FlightGear Front-End Situation |
Internally, the launcher is implemented in the form of a Nasal script that resides in $FG_ROOT/Nasal/canvas/gui/dialogs/AircraftCenter.nas using the Canvas GUI APIs and a handful of widgets. All the package manager functionality lives in SimGear and is triggered in the form of so called fgcommands. Thus, the list itself will be populated based on XML files that are automatically downloaded. If there are errors related to fetching/using those files, they shoudl show up in $FG_HOME/fgfs.log (look for Catalog.cxx).
The fetched files are to be found in $FG_HOME/Aircraft/org.flightgear.*
The "built-in" GUI/launcher is one of the longest-standing feature requests - but it's not just about the GUI (which is rather straightforward in comparison), but about the simulator never having been developed with this requirement, i.e. run-time reinitialization, in mind - thus, things like "fgrun" (and a plethora of other external launchers) were developed, which acted as a front-end on top of FG, so that FG itself wouldn't need to be changed - i.e. kind of a "remote control" using command line arguments. So it's there for a reason - fgrun uses the FLTK GUI library, which while relatively simple, is much more powerful than our legacy GUI engine, PUI.
— Hooray (Thu Jun 26). Re: About FlightGear being user-friendly or not.
(powered by Instant-Cquotes) |
And yes, even the legacy FG GUI is entirely based on XML and configurable through just editiing XML files - but the collection of "widgets" (GUI controls like buttons, checkboxes, labels etc) is extremely small and very inflexible.
— Hooray (Thu Jun 26). Re: About FlightGear being user-friendly or not.
(powered by Instant-Cquotes) |
Note that the upcoming FlightGear release is likely to contain an integrated, hard-coded, launcher based on Qt5 to work around this non-working launcher on MacOS: flightgear/flightgear/f3810707d53f3c04769bbc214036ee9156bc3a7c commit view
|
Global Canvas GUI (WIP)
(This subject has been discussed at FSWeekend)
— Clement de l'Hamaide (2014-11-18). Re: [Flightgear-devel] Features for 3.4 please.
(powered by Instant-Cquotes) |
The goal is to replace our dozens of GUI dialog by only 1 dialog with nice architecture/organization. For example, the "General" page is remplacing "File > Sound configuration", "View > Cockpit View Options", "View > Adjust HUD Properties" and "View > View Options". Some Canvas tools are missing (slider, radio button, styling helper like "font-bold", "underline"...) but I know Canvas is under development. — Clement de l'Hamaide (2014-11-18). Re: [Flightgear-devel] Features for 3.4 please.
(powered by Instant-Cquotes) |
The "Home" page is designed to be the "select airport", "select aircraft", "help"... finally this dialog could become the "built-in launcher".For
example we can imagine to have an option like --enable-launcher which start FG in a way that he doesn't load any aircraft or position but instead we hold the splashscreen and we show this Canvas dialog, then the user can select his airport and his aircraft. Finally a simple 'reset' with all settings required by the user is triggered that way the user end up in his aircraft at his airport. All of this require to be discussed and is likely at the "proof-of-concept" state. — Clement de l'Hamaide (2014-11-18). Re: [Flightgear-devel] Features for 3.4 please.
(powered by Instant-Cquotes) |
Looks … okay, just be aware how it will interact with the menubar. (Especially on Mac).
— James Turner (2014-11-19). Re: [Flightgear-devel] Features for 3.4 please.
(powered by Instant-Cquotes) |
I would still think that a series of top level dialogs might make more sense, based on frequency of use:
— James Turner (2014-11-19). Re: [Flightgear-devel] Features for 3.4 please.
(powered by Instant-Cquotes) |
I’m not sure how the equipment dialogs (which are often customised per-aircraft - eg radios or autopilot), including the GPS and route-manager, fit into this either.
Of course, it’s great if Canvas is as the point that we can actually consider such things, and hopefully the actual arrangement of screens + widgets is easy to evaluate and adjust. — James Turner (2014-11-19). Re: [Flightgear-devel] Features for 3.4 please.
(powered by Instant-Cquotes) |
Feature Requests
Supporting separate/external Windows for the GUI
This looks promising in a technical/coding perspective of having this and that common GUI feature available also for flightgear. But for me personally one of the big problems of the FlightGear GUI is that it is "inside" the only and one main window. There is no possibility to have a separate window to not cover the main content, the scenery and the cockpit? This would make the GUI much more practical. I would really like to run flightgear with one window "view" and other windows for the program (options). This will improve the usability of all the menus, dialogs etc. a lot in my opinion.
— ys (2012-07-24). Re: [Flightgear-devel] Switching from PUI to osgWidget.
(powered by Instant-Cquotes) |
Status
Also see: http://forum.flightgear.org/viewtopic.php?f=25&t=28877&#p277382
I've pushed now a first version of an aircraft install/removal dialog. Was a lot more effort than expected, but now there are a lot of — Thomas Geymayer (2014-06-10). Re: [Flightgear-devel] select/download aircraft.
|
The dialog is available in the menu (File > Aircraft Center) and shows a list of the 100 first aircrafts available to install/remove. I've — Thomas Geymayer (2014-06-10). Re: [Flightgear-devel] select/download aircraft.
|
Thomas Geymayer and I are working on it, I am not sure where’s he go to with the UI, the backend pieces are mostly there but will need some intensive testing. There is a #define flag you can toggle (in HTTPClient.cxx) to enable the code including the Nasal API; it will download / refresh a catalog, which is generated by the scripts I committed to fgmeta a week ago. Then you can access the package system from pkg.root in the Nasal console, using the API defined at the bottom of HTTPClient.cxx.
— James Turner (2014-06-10). Re: [Flightgear-devel] select/download aircraft.
|
My next objective will be actually switching to an aircraft, and setting up the correct paths so that dependencies work; this is more or less orthogonal, I will make a new command to select an aircraft (and reset the sim) based on an aircraft ID or fully-qualified ID. (Again to allow catalogs with ID collisions, such as org.flightgear.default.747-400 and nl.gijs-hangar.beta.747-400)
— James Turner (2014-06-10). Re: [Flightgear-devel] select/download aircraft.
|
the whole thing is still pretty experimental, it’s probably not at the ‘this text should be a little to the left’ point. We’re more at the ‘it didn’t erase your C drive? Great!’ stage….
— James Turner (2014-06-13). Re: [Flightgear-devel] Notes on Aircraft Center....
|
The layout and widget systems is now maturing, so I think after 3.2 I can start with porting PUI. Just one major component is missing, namely — Thomas Geymayer (2014-06-13). Re: [Flightgear-devel] Notes on Aircraft Center....
|
Tagging
Related to this, does anyone know how standardised the <status> values are? If there is a defined list of values I will add query support and expose them as an enum to Nasal.
— James Turner (2014-06-11). Re: [Flightgear-devel] select/download aircraft.
|
have updated my script with to restrict tags to the set I original wrote on the wiki some time ago:
— James Turner (2014-06-12). Re: [Flightgear-devel] select/download aircraft.
|
Variants
I don’t think there’s any pathological examples with more than eight -set.xml. Designating the ‘main’ -set.xml is still an issue.
— James Turner (2014-06-13). Re: [Flightgear-devel] select/download aircraft.
|
Aircraft developers can make use of a new tag in the Aircraft-set.xml file. Added to the <sim>
, the <variant-of>
tag states to the launcher the aircraft type that your aircraft is a variant of. For example, the BAe Sea Harrier FA2 is a variant of the BAe Sea Harrier, and the Cessna 172P - Canvas Demo is a variant of the C172P.
Note At the moment, only the Mac Qt launcher (which comes with FlightGear for Mac v3.4+) will read this tag. |
Syntax:
<sim>
...
<variant-of>[aircraft]</variant-of>
...
</sim>
Example from $FG_AIRCRAFT/Aircraft/777/777-200ER-set.xml (see gitorious/fg/fgdata/1017a32b1b078f46959b3b6e7510a7376458b02b):
<variant-of>777-200</variant-of>
Development
I thought about adding a cache add Canvas::Image or rather at the HTTPRequest level to cache all HTTP requests/files which have not set — Thomas Geymayer (2014-06-10). Re: [Flightgear-devel] select/download aircraft.
|
for a first step I want to limit it only to the HTTPMemoryRequest which is mainly used for downloading canvas images. So — Thomas Geymayer (2014-06-10). Re: [Flightgear-devel] select/download aircraft.
|
A semi-related small thing: I'd like to have saved-between-sessions "default aircraft/starting airport" properties (/sim/default-aircraft, — Rebecca N. Palmer (2014-05-30). Re: [Flightgear-devel] select/download aircraft.
|
Currently box layouts are available. Once they fully work I'll start thinking of other layouts and widgets. — Thomas Geymayer (2014-06-13). Re: [Flightgear-devel] Notes on Aircraft Center....
|
I want to implement a cache to speed it up after the first time, but not for — Thomas Geymayer (2014-06-13). Re: [Flightgear-devel] Notes on Aircraft Center....
|
what I’d want is tabs at the top for ‘installed aircraft’, ‘available updates’ and so on. But again the question is really what UI we can build in the time available.
— James Turner (2014-06-13). Re: [Flightgear-devel] Notes on Aircraft Center....
|
Known Issues
The default aircraft catalog download path is http://fgfs.goneabitbursar.com/pkg/<version>/default-catalog.xml, which does not exist for 3.4.0 or 3.5.0, giving a "catalog download failure:" error and an empty Aircraft Center.
— Rebecca N. Palmer (2015-03-31). [Flightgear-devel] Non-existent default catalog.
(powered by Instant-Cquotes) |
Also, the address includes the micro version: is that intentional or not? catalog download failure:http://fgfs.goneabitbursar.com/pkg/3.4.1/default-catalog.xml
— Rebecca N. Palmer (2015-03-31). Re: [Flightgear-devel] Non-existent default catalog.
(powered by Instant-Cquotes) |
It would be good to resolve the missing aircraft center database.
|
Prior to a reset, if you edit /sim/aircraft, it works as you would expect. However there are some quirks related to aircraft-specific menu items / dialogs, at least on Mac (the custom menu for previous aircraft is not removed).
— James Turner (2014-05-30). Re: [Flightgear-devel] select/download aircraft.
|
If you've created a grid control for Canvas, it would be nice to see the FDM, Systems, Cockpit and Model ratings broken out into individual columns — geneb (2014-06-13). [Flightgear-devel] Notes on Aircraft Center....
|
The Canvas fonts are blurry compared to the in.sim Menu bar Fonts -Richi Muchacho
|