Re: [Flightgear-devel] [RFC] tacan rewrite

2007-04-13 Thread Vivian Meazza
Csaba Halász

   On 4/12/07, Vivian Meazza wrote:
  
Why do you want to offset a TACAN position?
  
   You know why: because on the carriers the tacan altitude is 100 
   feet. And that *is* fixed, no matter where the carrier happens to 
   be. It should be fixed relative to the carrier. So as to 
 hide this 
   detail I have introduced the TACAN position which gets calculated 
   from the model position and an offset vector.
 
  Well - if a carrier ever moves from sea level we can take the 
  elevation add the carrier altitude. Is anything more needed?
 
 Umm, actually that is what I have done. Just in a more 
 generic way, such as possibly accounting for lateral 
 displacement and non-level orientation of the carrier. 
 Admittedly does not amount to much in case of the tacan, but 
 seems to be more logical this way. Looks like just for me.
 
Why on earth are you hard coding TACAN idents?
Why limit the MP to only one tanker ident?
  
   It is actually a limit of 9, MOBIL1-9. I could have used a
   *local* configuration file (or property) there, but this 
 is just a 
   temporary solution - I expect tacan information to come 
 through MP 
   protocol. Then this code will just disappear without affecting 
   anything else. And please note that the isTanker flag 
 *is* set from 
   this hardcoded MOBIL callsign as well. I don't think my 
 solution 
   is that much worse. At least it is well localized.
 
  Yes - I know - wrote it. And I think that you might have 
  misinterpreted the code here. The flag isTanker is set if any MP 
  object has a callsign starting with MOBIL - it can be followed by 
  anything. But just because it has the callsign MOBIL* doesn't imply 
  that it fitted with TACAN - that is determined by the 
 callsign/TACAN 
  ID assignment in carrier_nav.dat. Any callsign can be 
 associated with 
  any TACAN ID - MOBIL is just a bit of a pun. Not all tankers have 
  TACAN transmitters - the Sea Vixen in the Buddy-Buddy role 
 is one such 
  example. The inverse is, I think, true: I know of no airborne TACAN 
  transmitter which isn't a tanker, but I'm a bit out of date 
 here, and 
  this might have changed. Of course, the association of the callsign 
  MOBIL* with a tanker is a hack - the property isTanker ought to be 
  passed over MP. But when this was written no properties 
 were passed, 
  and adding them to the MP servers is not trivial.
 
   And these changes make it possible to provide tacan 
 parameters from 
   MP. Like changing channels, disabling transmitter and 
 such. All at 
   runtime. That is a desirable goal is it not? My solution 
 might not 
   be the best way to do it, though.
 
  Switching on/off is indeed desirable, but not changing channels at 
  runtime. Channels are assigned by headquarters for a 
 mission and not 
  changed in flight. In my day, this was only done by the 
 ground crew, 
  but it might well be possible in flight nowadays. Passing the 
  appropriate property value over MP should suffice, if we had a 
  controllable TACAN transmitter in the aircraft, which right now we 
  don't.
 
 Right. Next step would be to send tacan channel over MP as 
 well and then this temporary workaround would vanish. In the 
 meantime I thought it wouldn't matter as I assumed pretty 
 much everybody uses the default config anyway. But changing 
 my version to support this is easy as all the pieces are in 
 place. Carriers come from scenarios now - no need for their 
 tacan to be in the carrier-nav.dat, might as well add them to 
 the scenario (which essentially models the headquarters) If 
 in the future they come from MP, the carrier-nav.dat is again 
 not needed. Also note that runtime includes whenever a new 
 pilot joins, similar to passing the call sign. Everybody else 
 should see the tacan of *my* aircraft as *my* ground crew 
 (the command line) set it - not as it is mapped in *their* 
 carrier-nav.dat.
 
What is wrong with the existing FLOLS and Parking Position Code?
  
   Nothing, that was just a code cleanup. Refactored duplicated code 
   that reads a x-offset-m, y-offset-m and z-offset-m triplet into a 
   corrected SGVec3d. It now lives in
   FGAIBase::readOffsetFromScenario() because I happened to 
 need that 
   too. Surely that is not a bad thing?
 
  It is indeed a bad thing - only properties that are common to more 
  than one AI Object live in AIBase. The FLOLS and ParkPos 
 offsets are 
  peculiar to AICarriers, and so it is right that they should live 
  there.
 
 Umm, I think you missed something here. I did not move those 
 offsets anywhere. I just added a generic convenience function 
 that reads a generic offset value. I have only moved the 
 parsing code, the value is still stored wherever it was up to now.

Exactly my point: AIBase only reads generic values. Offsets are not generic
values, and their reading should remain where they are at present. If
another AI Object comes up with a requirement, then that is a different
matter.


Re: [Flightgear-devel] [RFC] tacan rewrite

2007-04-13 Thread gh.robin
On Fri 13 April 2007 10:31, Vivian Meazza wrote:
SNIP
 Yes - this is Mathias' business, I really can't comment, except to say that
 I would be surprised if there were anything much wrong with his code, and
 certainly not his mathematics.

  Have I missed anything?

 Yup - if it ain't broke don't fix it.

 Now back to something which is totally broken - AIBallistic and Submodels.
 That is a complete mess here with _apparently_ hundreds of ballistic
 objects not being removed when their life expires which causes FG to slow
 to a crawl. I just love fixing things which used to work. And it looks as
 if I won't get around to it until next week at the earliest, and it might
 not be until the week after.

 Vivian


Hello Vivian, Csaba
I am a TACAN user, with Tankers and Carriers, (mainly developing French Navy 
Aircraft models) i have read with interest that long conversation.

I can say, the existing TACAN system, which has been implemented and improved 
by Vivian suit to me, it is very simple to use and cover every requests.

Many thanks to Vivian who has spend so many hours on it .

I feel only one useful development  which could come, 
it is out of TACAN development but involve AI/MP system, i mean the carriers 
which could be part of an external AI system (not user dependent)  in order 
to give to every navy pilots, on line, the same carriers position, and so, to 
give the pleasure to land/take off all together to/from the same place.

Regards
-- 
Gérard


-
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT  business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.phpp=sourceforgeCID=DEVDEV
___
Flightgear-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/flightgear-devel


Re: [Flightgear-devel] [RFC] tacan rewrite

2007-04-13 Thread Vivian Meazza
gh.robin wrote:

... Snip ...
 
 Hello Vivian, Csaba
 I am a TACAN user, with Tankers and Carriers, (mainly 
 developing French Navy 
 Aircraft models) i have read with interest that long conversation.
 
 I can say, the existing TACAN system, which has been 
 implemented and improved 
 by Vivian suit to me, it is very simple to use and cover 
 every requests.
 
 Many thanks to Vivian who has spend so many hours on it .
 
 I feel only one useful development  which could come, 
 it is out of TACAN development but involve AI/MP system, i 
 mean the carriers 
 which could be part of an external AI system (not user 
 dependent)  in order 
 to give to every navy pilots, on line, the same carriers 
 position, and so, to 
 give the pleasure to land/take off all together to/from the 
 same place.
 

Thank you for the kind remarks. 

A carrier passed over MO=P ahs long been on the wish list. Several people
have been working on it (I'm not one of them), but there are no results so
far. We live in hope :-)

Vivian 


-
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT  business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.phpp=sourceforgeCID=DEVDEV
___
Flightgear-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/flightgear-devel


Re: [Flightgear-devel] [RFC] tacan rewrite

2007-04-13 Thread Csaba Halász
On 4/13/07, Vivian Meazza [EMAIL PROTECTED] wrote:

 Exactly my point: AIBase only reads generic values. Offsets are not generic
 values, and their reading should remain where they are at present. If
 another AI Object comes up with a requirement, then that is a different
 matter.

They are generic in the sense that it may be an offset of anything.
Yes, currently only the carrier uses it and it is not even in a
function there - it is duplicated! See below.

 It is right that TACAN assignments should be global - that's the way it is
 in RL - they are not made up locally. Of course it's not really hard to
 change the settings if you get the urge.

I was thinking that the command line arguments are essentially the ground crew.
So if I start FG with a fictional future parameter --tacan=041X then
this would have to be passed over MP to everyone and see me on that
channel. No global xml and no hardcode.

  4) the FLOLS/ParkPos issue -- that is just a code cleanup
  without any change in functionality whatsoever. Maybe I
  should have split that into a separate patch.

 Yes - this is Mathias' business, I really can't comment, except to say that
 I would be surprised if there were anything much wrong with his code, and
 certainly not his mathematics.

Didn't say anything about mathematics. Here is what is wrong:

// Transform to the right coordinate frame, configuration is done in
// the usual x-back, y-right, z-up coordinates, computations
// in the simulation usual body x-forward, y-right, z-down coordinates
flols_off(0) = - flols-getDoubleValue(x-offset-m, 0);
flols_off(1) = flols-getDoubleValue(y-offset-m, 0);
flols_off(2) = - flols-getDoubleValue(z-offset-m, 0);

... and later ...

// Transform to the right coordinate frame, configuration is done in
// the usual x-back, y-right, z-up coordinates, computations
// in the simulation usual body x-forward, y-right, z-down coordinates
double offset_x = -(*it)-getDoubleValue(x-offset-m, 0);
double offset_y = (*it)-getDoubleValue(y-offset-m, 0);
double offset_z = -(*it)-getDoubleValue(z-offset-m, 0);

See? Code duplication, even including the comment. This cries for a
helper function. And since every AI object potentially reads from a
scenario (there is a FGAIBase::readFromScenario after all), they could
benefit from a function like this at some later time.

  Have I missed anything?

 Yup - if it ain't broke don't fix it.

I was trying to improve it, not fix. Looks like we have fundamentally
different views on this, but that's okay :)

Greets,
Csaba

-
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT  business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.phpp=sourceforgeCID=DEVDEV
___
Flightgear-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/flightgear-devel


[Flightgear-devel] [RFC] tacan rewrite

2007-04-12 Thread Csaba Halász
Hello!

I have looked into tacan code when investigating a bug found by Nick.
From the one-liner fix it grew to this massive patch. Here is what I did:

Moved tacan parameters from carrier_nav.dat to the appropriate model
node in the property tree (eg. /ai/models/carrier/navaids/tacan).
Implementation added to AIBase (could even make a different class, say
AIBaseWithTacan). Ideally, the values should come from 3 places: i)
the scenario, ii) the model and iii) the network. Until iii) works I
automatically set up a tacan channel for mp aircraft with callsign
MOBIL (the isTanker flag was set based on this anyway.) While normally
a configuration file is preferable to hardcoding things, in this case
I think it is a bad choice to pollute the globals with information
needed by a hack. And nobody ever tweaked these settings.

Added support for tacan position offset from the model position. For
now I just put in a temporary solution that should work OK for
carriers (the only place where this is used currently). I don't know
how to properly add a body-relative vector to the lat,lon,alt
coordinates.

I have changed the channel-ID to lower case in the scenario xml and
the property tree. A quick search didn't show anything that used it,
so hopefully nothing is broken. Just a matter of personal preference,
feel free to ignore.

Also, code cleanups here and there. At least I think they are cleanups :)
The TACAN::update function could use some optimization so that it does
not update unchanged nodes.

There is an indicated-ground-speed-kt property which seems to hold the
closing speed. Should it be the ground speed of the selected target,
or do we need a rename? In the second case, we should also add a
little integration or something to make the values more stable. (Given
that ETA is also calculated from this, I think it is a misnomer.)

With these changes theoretically it should be possible to operate the
tacan from the source aircraft in MP for example.

Grab the patch from: http://w3.enternet.hu/jester/fgfs/tacan-20070412.diff

Now you can start telling me why this doesn't make any sense :)

Greets,
Csaba

PS: Note to people with cvs write access: please do *not* commit this (yet).

-
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT  business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.phpp=sourceforgeCID=DEVDEV
___
Flightgear-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/flightgear-devel


Re: [Flightgear-devel] [RFC] tacan rewrite

2007-04-12 Thread Vivian Meazza
Csaba Halász

 Hello!
 
 I have looked into tacan code when investigating a bug found by Nick.
 From the one-liner fix it grew to this massive patch. Here is what I 
 did:
 
 Moved tacan parameters from carrier_nav.dat to the 
 appropriate model node in the property tree (eg. 
 /ai/models/carrier/navaids/tacan).
 Implementation added to AIBase (could even make a different 
 class, say AIBaseWithTacan). Ideally, the values should come 
 from 3 places: i) the scenario, ii) the model and iii) the 
 network. Until iii) works I automatically set up a tacan 
 channel for mp aircraft with callsign MOBIL (the isTanker 
 flag was set based on this anyway.) While normally a 
 configuration file is preferable to hardcoding things, in 
 this case I think it is a bad choice to pollute the globals 
 with information needed by a hack. And nobody ever tweaked 
 these settings.
 
 Added support for tacan position offset from the model 
 position. For now I just put in a temporary solution that 
 should work OK for carriers (the only place where this is 
 used currently). I don't know how to properly add a 
 body-relative vector to the lat,lon,alt coordinates.
 
 I have changed the channel-ID to lower case in the scenario 
 xml and the property tree. A quick search didn't show 
 anything that used it, so hopefully nothing is broken. Just a 
 matter of personal preference, feel free to ignore.
 
 Also, code cleanups here and there. At least I think they are 
 cleanups :) The TACAN::update function could use some 
 optimization so that it does not update unchanged nodes.
 
 There is an indicated-ground-speed-kt property which seems to 
 hold the closing speed. Should it be the ground speed of the 
 selected target, or do we need a rename? In the second case, 
 we should also add a little integration or something to make 
 the values more stable. (Given that ETA is also calculated 
 from this, I think it is a misnomer.)
 
 With these changes theoretically it should be possible to 
 operate the tacan from the source aircraft in MP for example.
 
 Grab the patch from: 
 http://w3.enternet.hu/jester/fgfs/tacan-20070412.diff
 
 Now you can start telling me why this doesn't make any sense :)
 


Doesn't make any sense to me - what bug are you trying to fix? TACAN works
as is for AI and MP aircraft, and at the moment allows up to 3 of each, but
it is trivial to increase that to any number you like, without recourse to
hard coding. 

Why do you want to offset a TACAN position? Why on earth are you hard coding
TACAN idents? Why limit the MP to only one tanker ident?

What is wrong with the existing FLOLS and Parking Position Code?

If you don't know how to properly add a body-relative vector to the
lat,lon,alt coordinates don't muck with Mathias' code - he does know.

I'm not persuaded by this - try to convince me that something is wrong with
the existing code and its method, and while you are trying to do that, I
will not accept hard coding TACAN channels for mobile transmitters, any more
than I would for fixed sites.

Vivian



-
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT  business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.phpp=sourceforgeCID=DEVDEV
___
Flightgear-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/flightgear-devel


Re: [Flightgear-devel] [RFC] tacan rewrite

2007-04-12 Thread Csaba Halász
On 4/12/07, Vivian Meazza [EMAIL PROTECTED] wrote:

 Doesn't make any sense to me - what bug are you trying to fix?

None, it is already fixed. This is just a follow-up.

 Why do you want to offset a TACAN position?

You know why: because on the carriers the tacan altitude is 100 feet.
And that *is* fixed, no matter where the carrier happens to be. It
should be fixed relative to the carrier. So as to hide this detail I
have introduced the TACAN position which gets calculated from the
model position and an offset vector.

 Why on earth are you hard coding TACAN idents?
 Why limit the MP to only one tanker ident?

It is actually a limit of 9, MOBIL1-9. I could have used a *local*
configuration file (or property) there, but this is just a temporary
solution - I expect tacan information to come through MP protocol.
Then this code will just disappear without affecting anything else.
And please note that the isTanker flag *is* set from this hardcoded
MOBIL callsign as well. I don't think my solution is that much
worse. At least it is well localized.

And these changes make it possible to provide tacan parameters from
MP. Like changing channels, disabling transmitter and such. All at
runtime. That is a desirable goal is it not? My solution might not be
the best way to do it, though.

 What is wrong with the existing FLOLS and Parking Position Code?

Nothing, that was just a code cleanup. Refactored duplicated code that
reads a x-offset-m, y-offset-m and z-offset-m triplet into a corrected
SGVec3d. It now lives in FGAIBase::readOffsetFromScenario() because I
happened to need that too. Surely that is not a bad thing?

 If you don't know how to properly add a body-relative vector to the
 lat,lon,alt coordinates don't muck with Mathias' code - he does know.

I pointed out what I don't know so that somebody who does can help me
out (and it does not slip in unnoticed). In the meantime that code
works for the 2 cases currently in use.
(My guess is that I would need to convert to cartesian, rotate by the
yaw,pitch,roll add the offset and convert back.) Do you think I should
have done nothing because I am not sure about that little detail?

Personally I also disliked the old TACAN::search from a coding point
of view. Lots of code duplication, variable names like str1,str2, ...
str6 etc.

I won't mind if this does not get into cvs. I am having much fun with
FG - both flying and coding. So I thought why not try something other
than bug fixes (even though this started out as that as well).

Hope Mathias doesn't mind that I mucked with his code. Looks like
JSB is next :)

Greets,
Csaba

-
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT  business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.phpp=sourceforgeCID=DEVDEV
___
Flightgear-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/flightgear-devel


Re: [Flightgear-devel] [RFC] tacan rewrite

2007-04-12 Thread Vivian Meazza
Csaba Halász

 
 On 4/12/07, Vivian Meazza [EMAIL PROTECTED] wrote:
 
  Doesn't make any sense to me - what bug are you trying to fix?
 
 None, it is already fixed. This is just a follow-up.
 
  Why do you want to offset a TACAN position?
 
 You know why: because on the carriers the tacan altitude is 
 100 feet. And that *is* fixed, no matter where the carrier 
 happens to be. It should be fixed relative to the carrier. So 
 as to hide this detail I have introduced the TACAN position 
 which gets calculated from the model position and an offset vector.

Well - if a carrier ever moves from sea level we can take the elevation add
the carrier altitude. Is anything more needed?
 
  Why on earth are you hard coding TACAN idents?
  Why limit the MP to only one tanker ident?
 
 It is actually a limit of 9, MOBIL1-9. I could have used a 
 *local* configuration file (or property) there, but this is 
 just a temporary solution - I expect tacan information to 
 come through MP protocol. Then this code will just disappear 
 without affecting anything else. And please note that the 
 isTanker flag *is* set from this hardcoded MOBIL callsign 
 as well. I don't think my solution is that much worse. At 
 least it is well localized.

Yes - I know - wrote it. And I think that you might have misinterpreted the
code here. The flag isTanker is set if any MP object has a callsign starting
with MOBIL - it can be followed by anything. But just because it has the
callsign MOBIL* doesn't imply that it fitted with TACAN - that is determined
by the callsign/TACAN ID assignment in carrier_nav.dat. Any callsign can be
associated with any TACAN ID - MOBIL is just a bit of a pun. Not all tankers
have TACAN transmitters - the Sea Vixen in the Buddy-Buddy role is one such
example. The inverse is, I think, true: I know of no airborne TACAN
transmitter which isn't a tanker, but I'm a bit out of date here, and this
might have changed. Of course, the association of the callsign MOBIL* with a
tanker is a hack - the property isTanker ought to be passed over MP. But
when this was written no properties were passed, and adding them to the MP
servers is not trivial.
  
 And these changes make it possible to provide tacan 
 parameters from MP. Like changing channels, disabling 
 transmitter and such. All at runtime. That is a desirable 
 goal is it not? My solution might not be the best way to do 
 it, though.

Switching on/off is indeed desirable, but not changing channels at runtime.
Channels are assigned by headquarters for a mission and not changed in
flight. In my day, this was only done by the ground crew, but it might well
be possible in flight nowadays. Passing the appropriate property value over
MP should suffice, if we had a controllable TACAN transmitter in the
aircraft, which right now we don't.
 
  What is wrong with the existing FLOLS and Parking Position Code?
 
 Nothing, that was just a code cleanup. Refactored duplicated 
 code that reads a x-offset-m, y-offset-m and z-offset-m 
 triplet into a corrected SGVec3d. It now lives in 
 FGAIBase::readOffsetFromScenario() because I happened to need 
 that too. Surely that is not a bad thing?

It is indeed a bad thing - only properties that are common to more than one
AI Object live in AIBase. The FLOLS and ParkPos offsets are peculiar to
AICarriers, and so it is right that they should live there.

  If you don't know how to properly add a body-relative 
 vector to the 
  lat,lon,alt coordinates don't muck with Mathias' code - he 
 does know.
 
 I pointed out what I don't know so that somebody who does can 
 help me out (and it does not slip in unnoticed). In the 
 meantime that code works for the 2 cases currently in use. 
 (My guess is that I would need to convert to cartesian, 
 rotate by the yaw,pitch,roll add the offset and convert 
 back.) Do you think I should have done nothing because I am 
 not sure about that little detail?

Well, I think it's better if patches don't have built in problems - the
trouble is no one is likely to pick up on little details for you. 

 Personally I also disliked the old TACAN::search from a 
 coding point of view. Lots of code duplication, variable 
 names like str1,str2, ... str6 etc.

Fair comment. It grew out of the old dme code, and I would have probably
done it differently with a clean sheet of paper approach

 I won't mind if this does not get into cvs. I am having much 
 fun with FG - both flying and coding. So I thought why not 
 try something other than bug fixes (even though this started 
 out as that as well).

Well, you haven't convinced me that this is a valid change, in fact I think
it flawed in several important respects. Sorry, especially if you have spent
any great time on this. But thank you very much indeed for finding and
correcting the original bug. Hmm - no one noticed for 6 months! Oh well ...
particularly as it had been fixed once. 
 
 Hope Mathias doesn't mind that I mucked with his code. 
 Looks like JSB is next :)

I sure he 

Re: [Flightgear-devel] [RFC] tacan rewrite

2007-04-12 Thread Csaba Halász
On 4/13/07, Vivian Meazza [EMAIL PROTECTED] wrote:
 Csaba Halász

 
  On 4/12/07, Vivian Meazza [EMAIL PROTECTED] wrote:
 
   Why do you want to offset a TACAN position?
 
  You know why: because on the carriers the tacan altitude is
  100 feet. And that *is* fixed, no matter where the carrier
  happens to be. It should be fixed relative to the carrier. So
  as to hide this detail I have introduced the TACAN position
  which gets calculated from the model position and an offset vector.

 Well - if a carrier ever moves from sea level we can take the elevation add
 the carrier altitude. Is anything more needed?

Umm, actually that is what I have done. Just in a more generic way,
such as possibly accounting for lateral displacement and non-level
orientation of the carrier. Admittedly does not amount to much in case
of the tacan, but seems to be more logical this way. Looks like just
for me.

   Why on earth are you hard coding TACAN idents?
   Why limit the MP to only one tanker ident?
 
  It is actually a limit of 9, MOBIL1-9. I could have used a
  *local* configuration file (or property) there, but this is
  just a temporary solution - I expect tacan information to
  come through MP protocol. Then this code will just disappear
  without affecting anything else. And please note that the
  isTanker flag *is* set from this hardcoded MOBIL callsign
  as well. I don't think my solution is that much worse. At
  least it is well localized.

 Yes - I know - wrote it. And I think that you might have misinterpreted the
 code here. The flag isTanker is set if any MP object has a callsign starting
 with MOBIL - it can be followed by anything. But just because it has the
 callsign MOBIL* doesn't imply that it fitted with TACAN - that is determined
 by the callsign/TACAN ID assignment in carrier_nav.dat. Any callsign can be
 associated with any TACAN ID - MOBIL is just a bit of a pun. Not all tankers
 have TACAN transmitters - the Sea Vixen in the Buddy-Buddy role is one such
 example. The inverse is, I think, true: I know of no airborne TACAN
 transmitter which isn't a tanker, but I'm a bit out of date here, and this
 might have changed. Of course, the association of the callsign MOBIL* with a
 tanker is a hack - the property isTanker ought to be passed over MP. But
 when this was written no properties were passed, and adding them to the MP
 servers is not trivial.

  And these changes make it possible to provide tacan
  parameters from MP. Like changing channels, disabling
  transmitter and such. All at runtime. That is a desirable
  goal is it not? My solution might not be the best way to do
  it, though.

 Switching on/off is indeed desirable, but not changing channels at runtime.
 Channels are assigned by headquarters for a mission and not changed in
 flight. In my day, this was only done by the ground crew, but it might well
 be possible in flight nowadays. Passing the appropriate property value over
 MP should suffice, if we had a controllable TACAN transmitter in the
 aircraft, which right now we don't.

Right. Next step would be to send tacan channel over MP as well and
then this temporary workaround would vanish. In the meantime I thought
it wouldn't matter as I assumed pretty much everybody uses the default
config anyway. But changing my version to support this is easy as all
the pieces are in place. Carriers come from scenarios now - no need
for their tacan to be in the carrier-nav.dat, might as well add them
to the scenario (which essentially models the headquarters) If in the
future they come from MP, the carrier-nav.dat is again not needed.
Also note that runtime includes whenever a new pilot joins, similar
to passing the call sign. Everybody else should see the tacan of *my*
aircraft as *my* ground crew (the command line) set it - not as it is
mapped in *their* carrier-nav.dat.

   What is wrong with the existing FLOLS and Parking Position Code?
 
  Nothing, that was just a code cleanup. Refactored duplicated
  code that reads a x-offset-m, y-offset-m and z-offset-m
  triplet into a corrected SGVec3d. It now lives in
  FGAIBase::readOffsetFromScenario() because I happened to need
  that too. Surely that is not a bad thing?

 It is indeed a bad thing - only properties that are common to more than one
 AI Object live in AIBase. The FLOLS and ParkPos offsets are peculiar to
 AICarriers, and so it is right that they should live there.

Umm, I think you missed something here. I did not move those offsets
anywhere. I just added a generic convenience function that reads a
generic offset value. I have only moved the parsing code, the value is
still stored wherever it was up to now.

Your point would be valid about the whole tacan equipment not
belonging in AIBase, but I allowed for that in my original mail by
saying maybe there should be a separate FGAIBaseWithTacan.

 Well, I think it's better if patches don't have built in problems - the
 trouble is no one is likely to pick up on little details for you.