• Which the release of FS2020 we see an explosition of activity on the forun and of course we are very happy to see this. But having all questions about FS2020 in one forum becomes a bit messy. So therefore we would like to ask you all to use the following guidelines when posting your questions:

    • Tag FS2020 specific questions with the MSFS2020 tag.
    • Questions about making 3D assets can be posted in the 3D asset design forum. Either post them in the subforum of the modelling tool you use or in the general forum if they are general.
    • Questions about aircraft design can be posted in the Aircraft design forum
    • Questions about airport design can be posted in the FS2020 airport design forum. Once airport development tools have been updated for FS2020 you can post tool speciifc questions in the subforums of those tools as well of course.
    • Questions about terrain design can be posted in the FS2020 terrain design forum.
    • Questions about SimConnect can be posted in the SimConnect forum.

    Any other question that is not specific to an aspect of development or tool can be posted in the General chat forum.

    By following these guidelines we make sure that the forums remain easy to read for everybody and also that the right people can find your post to answer it.

FSXA Repeating XML events

Messages
1,749
Country
unitedstates
I am trying to test my own aircraft for memory leaks or XML events that constantly trigger over and over causing high VAS usage. I have tried a few programs and some did not work or were hard to understand without good examples and tutorials.

I am using FUIPC and here is what it shows when i have selected "Events (non-axis controls)" under logging and display to FS Window.

Without doing anything it shows these events repeating down the page. Are these the events that are constantly running? And i need to fix these XML codes?

XML_log.jpg


Can someone create some instructions on what to select and how to discover which events need to be fixed.
 
Last edited:
Yes if they are constantly repeating without you actually triggering something (eg turning on a switch or such) then it is flooding.
 
Thanks, that's what i thought. Looks like i have 18 codes to fix.

Naruto remember the guy who solved the steering lock. Well here is his code although i reversed it slightly but basically the same code. I just improved it. Well this is one of the flood codes and not sure how to fix this!

Code:
<Element>
   <Select>
     <Value>
    (L:STEER_ON,bool) 0 == if{ (A:RUDDER PEDAL POSITION,Part) 16384 * (>K:STEERING_SET) } els{ 0 (>K:STEERING_SET) }
     </Value>
   </Select>
</Element>
 
These apps log Events that occur while the sim is running, have you used them before? In at least XMLEvents case, the information is shown in real time so it is apparent if any particular event is flooding. Apologies, but I don't know about FSUIPC ... maybe it offers similar information ... I'm not sure.


  • Tom Aguilo XMLTools 2.0, XMLEvents class

For the case above, what resets L:STEER_ON, bool to not equal zero? BTW, pls remind me, would enum or position be equivalent to part as units for Rudder Pedal Position?

Bob
 
These apps log Events that occur while the sim is running, have you used them before? In at least XMLEvents case, the information is shown in real time so it is apparent if any particular event is flooding. Apologies, but I don't know about FSUIPC ... maybe it offers similar information ... I'm not sure.


  • Tom Aguilo XMLTools 2.0, XMLEvents class

For the case above, what resets L:STEER_ON, bool to not equal zero? BTW, pls remind me, would enum or position be equivalent to part as units for Rudder Pedal Position?

Bob

Doug Dawson event_logger ...Failed to load as it only showed a black box for just a second and Geoff had the same issue. I read his post and went for FSUIPC like he did. The cool thing is you never have to add entries to cfg's.

Tom Aguilo XMLTools 2.0 ...I used this in the past and when i loaded the window and click start nothing shows.

Ok just spent an hour working on the fuel selector flooding as this was the tough one since I can't just ask if the switch is off because the fuel selector set has like 18 options. Working perfect and it now does not show up. The rest should be easy but not sure about how to fix the steer lock yet!
 
Last edited:
As I read the steering script, if (L:STEER_ON, bool) is zero, (>K:STEERING_SET) is fired. And, if (L:STEER_ON, bool) is not zero, (>K:STEERING_SET) is still fired, just with a different value. Constant firing is a race condition.
 
As I read the steering script, if (L:STEER_ON, bool) is zero, (>K:STEERING_SET) is fired. And, if (L:STEER_ON, bool) is not zero, (>K:STEERING_SET) is still fired, just with a different value. Constant firing is a race condition.

Yep we to add a variable for steering set to fix this issue. And there is none i think. So i was thinking of using a custom variable to add to the equation.
 
Last edited:
does flooding cause high VAS usage?

VAS = ?

Anyway, whatever VAS is, that's probably a good question. I just take it on face value that Event flooding isn't a desirable thing, but precisely how performance of the sim is affected, that's beyond my level of understanding.
 
Last edited:
All of those on the flooding list should be able to be fixed easily except for maybe the steering & gyro set. IIRC the command for gyro set will correct or apply any gyro drift error with A:GYRO DRIFT ERROR being the read variable to compare.

As for the steering this may work if A:GEAR CENTER STEER ANGLE (from SDK) gives an output that is compatible. Not tested at all. The 100 + & 100 - gives a little null zone because there is no way that the rudder pedal and steering angle are going to match EXACTLY at any given time, reducing flooding. Note flooding will occur when steering is being used as that is going to be essentially the same as a joy axis input.

Code:
<Element>
   <Select>
     <Value>
        (L:STEER_ON,bool) 1 ==
           if{ (A:RUDDER PEDAL POSITION,Part) 16384 * s1 100 - l1 100 + (A:GEAR CENTER STEER ANGLE, percent over 100) 16384 * rng ! if{ l1 (>K:STEERING_SET) } }
           els{ (A:GEAR CENTER STEER ANGLE, percent over 100) 0 != if{ 0 (>K:STEERING_SET) } }
     </Value>
   </Select>
</Element>

EDIT - I would wrap that code ( or version of ) in another if{ } surrounding all of it
If the aircraft is on ground - then do any part of the code. No sense of it working in the air or gear up etc...
 
Last edited:
Try using KeyMap objects to trap the rudder event and only execute your steering script when that happens.
 
Yes that makes sense that the gyro and steering would not be something we can't fix as the point of not showing axis controls is an auto option and they will always be active.

But it looks like you wrote a code for the steer lock and i will give it try, thanks!

Update: Spokes your code works good and the (L:STEER_ON,bool) 1 == needed to be a (L:STEER_ON,bool) 0 ==. Here is the outcome. Now it only floods when the steer lock is on and this is perfect so that during long flights there is no flooding, only when it's on rather than off.
 
Last edited:
I think it means Virtual Application Usage.
VAS = Virtual Address Space
Every program (application) is allocated a VAS of 4GB in which to map itself in physical memory (RAM).

"Flooding" (aka: race condition) does not itself consume VAS. The main effect of "Flooding" is that it monopolizes the time and will block other events from being fired and or read.

For example, an event being fired constantly will prevent one from opening Door2, 3, or 4. The sim will only "see" the command Shift-E, but will never "see" the 2, 3, or 4 key being pressed.
 
I was thinking the same. I need to know how to test for VAS leakage as i have 3 customers who say i am using more then PMDG 777. But when i check my memory it holds a steady 800MB and it does not climb much over time. And sometimes lowers again.
 
Back
Top