Board index FlightGear Development Canvas

Re: 737CL specific ND ? (by Soitanen)

Canvas is FlightGear's new fully scriptable 2D drawing system that will allow you to easily create new instruments, HUDs and even GUI dialogs and custom GUI widgets, without having to write C++ code and without having to rebuild FlightGear.

Re: 737CL specific ND ? (by Soitanen)

Postby Hooray » Sun Feb 23, 2014 2:42 pm

Soitanen wrote in Sat Mar 21, 2009 4:53 pm:If I want to create old EHSI for 737CL and represent all features (when some elements hide, or appear etc) for 737NG, where can I take conversation, what I can touch and what is better to keep unchangable?

feel free to use the wiki (Navdisplay talk page) or the canvas sub forum for this,
Gijs & Hyde are the primary maintainers of the ND stuff, and it is currently 747/777 specific
so if your changes are 737 specific (should not be shown on the 747 or 777), it would be better introduce a new "NDStyle" at the top of the file.

That is possible and documented at: ... w_features

However, I would suggest to wait a little with this, the API is not yet very flexible (and many things will be overlapping with other boeing features), it is better to focus on shared/common features for now, so that we end up with a single "navdisplay.mfd" that has most boeing/airbus features. Once everything is more complete, we're going to move the "Boeing" stuff out into something like "boeing.nd" where the whole hash will end up. That would then be the place to implement additional airliner stuff, without touching/breaking the other stuff.

We have some airbus developers doing similar things, so they could then simply copy the "boeing.nd" file and customize it, without any chance for breaking things.

But basically, it will take a while until this is well supported: viewtopic.php?f=71&t=22045&p=200762#p200575

Some of the requirements to make that happen are detailed in the ND article in the wiki.
the whole "NDStyles" stuff should be easy to move out of navdisplay.mfd, so that Gijs et al can focus on aircraft specifics, without having to touch the framework - but for that to happen, the update() method must be collapsed and ported to use those "predicate" hashes with true/false callbacks.

Once that is the case, newMFD() only needs some minor changes, but people can then implement different NDs without stepping on anybody's toes, even without having to edit the same file - i.e. no more editing conflicts.

I am sure that Gijs & Hyde can tell you how to best proceed from here.
But technically, people should not have to touch any stuff that is specific to the 747/777 - obviously, you can just add huge conditonal blocks, but that's not a good thing to do - just look at the huge update() method - it's difficult to understand ...
Please don't send support requests by PM, instead post your questions on the forum so that all users can contribute and benefit
Thanks & all the best,
Help write next month's newsletter !
pui2canvas | MapStructure | Canvas Development | Programming resources
Posts: 11968
Joined: Tue Mar 25, 2008 8:40 am

Return to Canvas

Who is online

Users browsing this forum: No registered users and 1 guest