On 08/15/2008 01:30 PM, James Turner wrote:
> I encountered the following code, in the middle of  
> FGNavList::findNavFromList:

[snip]

> Now, there's two bad things here: (I think)
>   - in the DME case (type == 12 or 13), hdg is left 0.0
>   - hdg, having been computed, isn't then used: I assume it should  
> replace the 'station->get_multiuse' on this line:
>       az1 = az1 - station->get_multiuse();

Good catch.  Actually, there's more than two bad things here.

> It'd be great if someone who knows more about this code could comment  
> on how 'important' it is, since it's only doing the right thing in the  
> ILS/LOC case (the GS will be wrong because 'multiuse' contains other  
> data, and DME because multiuse is empty)

Before we discuss the code in detail, we should try to figure out what 
is the goal or purpose of this code.  If the goal is realism, it will 
be a very short discussion, because the concepts on which this code is 
based are seriously unrealistic, even in the LOC case.
 *) The "aiming" of localizer antennas does not work the way this code
  assumes.  Not even close.
 *) This is well known and officially documented in e.g. the Aeronautical
  Information Manual.  Look under "Service Volume".
 *) Pilots depend on the service volume behaving as documented.
   -- This is particularly obvious in the case of "Back Course" approaches.
   -- This is particularly obvious in the case of a Missed Approach where
    the pilot follows the localizer course well past the antenna.  One
    of my maxims is 
              "If you're not prepared for the miss, 
               you're not prepared for the approach"
   -- Et cetera.  You get the idea.



> It feels like this ought to cause visible weirdness with nav-radios,  
> but I don't have a strong understanding for how 'bad' this might be.

It's bad.

> Maybe we only actually encounter this code for ILS transmitters, so  
> the bug is masked?

Even the ILS/LOC behavior is seriously unrealistic.

=============================

If you want to know how it works in the real world, consider e.g. the
paired transmitters for KJFK RWY 4L/22R.
 -- ILS RWY 4L  uses frequency 110.9, callsign I-HIQ
 -- ILS RWY 22R uses frequency 110.9, callsign I-IWY

Now the trick is that in the real world, you never have both transmitters
active at the same time.  There's a switch in the tower.  It's just that
simple.

      Funny story:  This is one of the many reasons why pilots are 
       trained to always identify the navaid callsign.  I once had 
       a student pull out the ILS RWY 4L approach plate and try to
       follow it while the I-HWY transmitter was active.  He got
       rather spectacularly confused.  
 
       (Ever since then, he has been fastidious about IDENTing navaids.)

===========================================

Possibly constructive suggestions:

  1) In the case of paired transmitters, turn on the one that serves the
   runway _favored by the wind_.  Do this regardless of the location of
   the aircraft.

   Remark:  This works even in multiplayer situations.

   Remark:  Put a heavy low-pass filter on the choice of runway, so it 
   doesn't go nuts if the wind is variable.  Maybe cooperate with the ATIS 
   code so that the "active" runway reported by ATIS is the runway with the 
   active transmitter.

  2) Fix the many other bugs in the service-volume code.  Note that there
   is code in the Sport Model to handle false LOC courses, false GS paths,
   extended LOC volumes, and other stuff you encounter in the real world.


-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
Flightgear-devel mailing list
Flightgear-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/flightgear-devel

Reply via email to