I'm overhauling how we expose FMS related data to Nasal, to hopefully make 
FMS/CDU construction in Nasal easier, but also re-using the C++ code we already 
have, since many systems tie into the data.

Along the way, I'm learning a lot about the easiest way to expose C++ data to 
Nasal, and I'm also trying to reduce code duplication. So where we have an 
fg-command for an operation, I'll try to wrap the command in a nice Nasal 
syntax. (With some exceptions).

As part of this, there's various features that I'd like to clean up, but I need 
to be careful about compatibility. I'll list them below, but in general the 
question is how conservative or aggressive I can be in changing this stuff now, 
given it's 50 days until freeze - and more than 100 until release.

The things I'd propose to remove / change / break:

1)
        on navinfo() results, I want to remove the 'distance' and 'bearing' 
values, since these depend on the query position, and can be computed easily 
*if necessary* by the new courseAndDistance method. (Which works for any 
waypoint / navaid / airport / geo.Coord / etc)

        [as far as I can tell, nothing in fgdata uses this feature anyway]

2) 
        on airportinfo() results, I'd like to make the runways hash be a 
function, instead of a child hash. This will mean it can be generated lazily, 
and since airports have many runways, and we have quite a lot of data in the 
runways hash, it would save a ton of hash-building.

        In practice the only change to code would be calling apt.runways() 
instead of apt.runways, but that will still break aircraft that use the old 
syntax...

        [the only users of this data I can find in fgdata are GUI dialogs which 
are easy to fix, and actually would benefit from a revised API to get a single 
runway by ident, which I plan to add - but I assume this is the feature other 
FMS/CDU scripts are most likely using ....]

3)
        The route-manager has an internal 'command' API to manipulate the route 
- this is used by the route-manager dialog. With the new Nasal functions, this 
could be replaced with nicer Nasal calls. The question is if anyone has code 
which is using this API - it's been around for a long time. Again, in fgdata, 
no one is.

1) is low risk, I will almost certainly do it.
2) I would really like to do, but it really depends on the fall-out.
3) is less important, since the old interface can remain in parallel

All feedback appreciated.
James


------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
Flightgear-devel mailing list
Flightgear-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/flightgear-devel

Reply via email to