|
From: Torsten D. <To...@t3...> - 2009-05-18 12:35:52
|
> On Sun, 17 May 2009, Torsten Dreyer wrote: > > Correct, the error occours only for properties outside the /fdm/jsbsim > > domain. (see my original post). I don't see any reason for not putting > > them into an arbitrary location in the property tree - until it's defined > > as illegal ;-) It currently does not work because of a "design flaw". I > > don't think it is a good idea to have two properties updated for the same > > purpose - the automatically created from the components name and one from > > the output element. > > I OTOH find it very reasonable to constrain JSBSim components to > the /fdm/jsbsim/ subtree. That avoids a lot of potential problems when > sharing the property tree with an external application (as is the case in > the JSBSim / FlightGear combination). It also works with the present > property clean-up scheme. > > IIRC the cost of a tied property is very low (as long as it isn't read). > > I view touching any property outside /fdm/jsbsim as external > communication. > > > And: <output> properties are not tied, so listeners do not get triggered > > on update. > > If my memory serves me right (and a quick test seem to confirm it does) > it is tied properties that Nasal listeners do not work with. > So, in fact, it is only if you use <output> you get a property that you > can listen to, otherwise you don't. > > > Jon, just to confirm, properties with relative paths do not produce the > > error message. Your memory still serves you well ;-) > > > > Oh - while typing this, I will try to name a component "../../some/name" > > instead of "/some/name" to check if this works... > > IMHO that is a bad idea. But you do as you please, of course. I understand your arguments and respect them. Currently there is no explicit note, that components shall not be named outside the jsbsim "namespace". I consider anything not explicitely forbidden as being allowed (usually germans think the other way round, esp. politicians, policemen and lawyers). The sourcecode explicitely takes care of propertynames starting with "/". This shows me, that at least some thoughts have been spent on this topic but they did not resolve into a final solution. Once again: it generally works, just the FDM-reset fails. I think there are two choices: 1. Declare naming of components outside the jsbsim property base as legal. Then there is a bug which should be fixed. 2. Components shall not use names starting with "/" or "../" to be defined outside the jsbsim root. Then this should be documented, a warning/error message been printed or anything alike. And the support for this may be removed from the source. Either way if fine for me, but the current state does not match the high quality standards of JSBSim and should be avoided - IMHO. Torsten |