Skip to content
View in the app

A better way to browse. Learn more.

The AVSIM Community

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Touchdown speed gauge similar to FSUIPC plugin (for folks without FSUIPC)

Featured Replies

Hey all,

this thread:

http://forum.avsim.net/topic/469334-landing-rate-plugin-for-fsuipc-improve-your-landings-fsxp3d/

 

inspired me to try myself at gauge programming, since I don't have FSUIPC and wanted something similar:

 

VSpeed.jpg

 

 

It's a bit more involved that the FSUIPC implementation  - it requires a new panel definition in the airplanes for which the gauge is to be used; this is what I'm using:

 

[Window10]
visible=1
size_mm=80,50
window_size=0.08,0.05
window_pos=0.0,0.5
background_color=0,0,0
ident=14080
zorder=5
alpha_blend=0.4
type=special
gauge00=Touchdown!VSpeed,0,0

 

(ident has to be a number greater than 10000 not used in the panel.cfg, and replace the 10 in [Window10] with a number that doesn't clash with any other window, probably best to stay greater than 10.

 

in the gauges directory, create a folder named 'Touchdown' and create a file named 'VSpeed.xml' in there, containing the following code:

 

<?xml version="1.0" encoding="UTF-8"?>

<SimBase.Document
        Type="AceXML"
        version="1,0"
        id="VSpeed">
    <Descr>AceXML Document</Descr>
    <SimGauge.Gauge id="Gauge">
        <Update>
            <Frequency>6</Frequency>
            <Script>
                (A:SIM ON GROUND, bool)
                if{
                    (L:TookOff,bool)
                    if{
                        0 (>L:TookOff)
                        (E:ABSOLUTE TIME,Seconds) 7 +  (>L:Timer)
                    }
                 }
                 els{
                     (A:VERTICAL SPEED, Feet per minute) (>L:VSpeed)
                     (A:GROUND VELOCITY, Knots) (>L:HSpeed)
                     1 (>L:TookOff)
                 }
             </Script>
         </Update>
        <Element id="Touchdown">
            <Visibility>(E:ABSOLUTE TIME,Seconds)  (L:Timer,Seconds)  <  </Visibility>
            <Element id="VSpeed">
                <GaugeText id="VSpeedText">
                     <Size>50,28</Size>               
                    <FontFace>Arial</FontFace>
                    <FontColor>red</FontColor>
                    <BackgroundColor>azure</BackgroundColor>
                    <FontHeight>25</FontHeight>
                    <HorizontalAlign>CENTER</HorizontalAlign>
                    <GaugeString>%((L:VSpeed,Number))%!d!</GaugeString>
                    <Length>5</Length>
                </GaugeText>
            </Element>
             <Element id="HSpeed">
                <FloatPosition>50,0</FloatPosition>
                <GaugeText id="HSpeedText">
                     <Size>30,28</Size>               
                    <FontFace>Arial</FontFace>
                    <FontColor>red</FontColor>
                    <BackgroundColor>azure</BackgroundColor>
                    <FontHeight>25</FontHeight>
                    <HorizontalAlign>CENTER</HorizontalAlign>
                    <GaugeString>%((L:HSpeed,Number))%!d!</GaugeString>
                    <Length>3</Length>
                </GaugeText>
            </Element>
        </Element>
        
    </SimGauge.Gauge>
</SimBase.Document>

 

That should give you an entry 'VSpeed' in the 'Views->Instruments Panel'  pulldown menu. Enable that and every time you touch down your vertical speed in FPM and horizontal speed in Knots will display for 7 seconds. The gauge updates 6 times a second; I felt that was enough to be reasonably accurate while having a minimal perfomance impact.

 

Hope somebody gets some use out of it!

  • Author

I forgot:  In the [Window Titles] section in panel.cfg, add

 

WindowXX=VSpeed

 

to get the gauge selection into the pulldown menus.

  • Author

Well, thanks!  I've modified the code a bit to take care of bouncing: Now only the first ground contact within 7 secs will be displayed. Also, the variable L:Timer clashed with one used somewhere in the A2A C172 gauges; needed to be renamed.

Since the community interest seems to be very close to zero I'll probably limit myself to topics such as 'My feelings towards X' from now on.

 

gauge code update:

 

<?xml version="1.0" encoding="UTF-8"?>

<SimBase.Document
        Type="AceXML"
        version="1,0"
        id="VSpeed">
    <Descr>AceXML Document</Descr>
    <SimGauge.Gauge id="Gauge">
        <Update>
            <Frequency>6</Frequency>
            <Script>
                (A:SIM ON GROUND, bool)
                if{
                    (E:ABSOLUTE TIME,Seconds)  (L:DisplayInterval,Seconds)  >
                    (L:TookOff,bool)
                    and
                    if{
                        (E:ABSOLUTE TIME,Seconds) 7 +  (>L:DisplayInterval)
                        0 (>L:TookOff)
                    }
                 }
                 els{
                    (E:ABSOLUTE TIME,Seconds)  (L:DisplayInterval,Seconds)  >
                    if{
                        (A:VERTICAL SPEED, Feet per minute) (>L:VSpeed)
                        (A:GROUND VELOCITY, Knots) (>L:HSpeed)
                        1 (>L:TookOff)
                    }
                 }
             </Script>
         </Update>
        <Element id="Touchdown">
            <Visibility>(E:ABSOLUTE TIME,Seconds)  (L:DisplayInterval,Seconds)  <</Visibility>
            <Element id="VSpeed">
                <GaugeText id="VSpeedText">
                     <Size>50,28</Size>               
                    <FontFace>Arial</FontFace>
                    <FontColor>red</FontColor>
                    <BackgroundColor>azure</BackgroundColor>
                    <FontHeight>25</FontHeight>
                    <HorizontalAlign>CENTER</HorizontalAlign>
                    <GaugeString>%((L:VSpeed,Number))%!d!</GaugeString>
                    <Length>5</Length>
                </GaugeText>
            </Element>
             <Element id="HSpeed">
                <FloatPosition>50,0</FloatPosition>
                <GaugeText id="HSpeedText">
                     <Size>30,28</Size>               
                    <FontFace>Arial</FontFace>
                    <FontColor>red</FontColor>
                    <BackgroundColor>azure</BackgroundColor>
                    <FontHeight>25</FontHeight>
                    <HorizontalAlign>CENTER</HorizontalAlign>
                    <GaugeString>%((L:HSpeed,Number))%!d!</GaugeString>
                    <Length>3</Length>
                </GaugeText>
            </Element>
        </Element>
        
    </SimGauge.Gauge>
</SimBase.Document>

  • 4 years later...

Hi Harry


Reopening this thread as it is exactly what I had been looking for ....

I did pimp up your code a bit, so now I have :

 

In panel.cfg :

Windowxx=Landing Rate Monitor

and further down

[Windowxx]
always_visible=1
size_mm=74,46
window_size=0.076,0.04
window_pos=0.0,0.5
background_color=0,0,0
ident=14080
zorder=5
alpha_blend=0.4
type=special

gauge00=Touchdown!VSpeed,0,0

 

And then created a VSpeed.xml file in a Touchdown folder in the Panel folder, with :

<?xml version="1.0" encoding="UTF-8"?>

<SimBase.Document
        Type="AceXML"
        version="1,0"
        id="VSpeed">
    <Descr>AceXML Document</Descr>
    <SimGauge.Gauge id="Gauge">
        <Update>
            <Frequency>6</Frequency>
            <Script>
                (A:SIM ON GROUND, bool)
                if{
                    (L:TookOff,Bool) if{ (E:ABSOLUTE TIME,Seconds) 15 + (>L:DisplayInterval,Seconds) }
                    0 (>L:TookOff,Bool)
                }
                 els{
                    (L:onDisplayBool,Bool) ! if{ (A:VERTICAL SPEED, Feet per minute) (>L:VSpeed,Number) (A:GROUND VELOCITY, Knots) (>L:HSpeed,Number) }
                    1 (>L:TookOff,Bool)
                }
                
                (L:DisplayInterval,Seconds) (E:ABSOLUTE TIME,Seconds) - 0 &gt;= (>L:OnDisplayBool,Bool)
                (E:ABSOLUTE TIME, seconds) 2 % 1 > (>L:OnDisplayBlink,Bool)
                (E:ABSOLUTE TIME, seconds) 1 % 0.5 > (>L:OnDisplayQuickBlink,Bool)
                (L:VSpeed,Number) -200 &lt;= (L:VSpeed,Number) -400 &gt; and (>L:HardLanding,Bool)
                (L:VSpeed,Number) -400 &lt;= (>L:SevereLanding,Bool)
                (L:onDisplayBlink,bool) (L:HardLanding,Bool) and (>L:onDisplayCond1,Bool)
                (L:onDisplayQuickBlink,bool) (L:SevereLanding,Bool) and    (>L:onDisplayCond2,Bool)    
             </Script>
         </Update>
        <Element id="Touchdown">
            <Visibility>(L:onDisplayBool,bool)</Visibility>
            <Element id="VSpeed">
                <GaugeText id="VSpeedText" bright="true" bold="true">
                    <Size>44,22</Size>               
                    <FontFace>Arial</FontFace>
                    <FontColor>black</FontColor>
                    <BackgroundColor>azure</BackgroundColor>
                    <FontHeight>16</FontHeight>
                    <VerticalAlign>CENTER</VerticalAlign>
                    <HorizontalAlign>RIGHT</HorizontalAlign>
                    <GaugeString>%((L:VSpeed,Number))%!d! ft/mn </GaugeString>
                </GaugeText>
            </Element>
             <Element id="HSpeed">
                <FloatPosition>46,0</FloatPosition>
                <GaugeText id="HSpeedText" bright="true" bold="true">
                    <Size>28,22</Size>               
                    <FontFace>Arial</FontFace>
                    <FontColor>black</FontColor>
                    <BackgroundColor>azure</BackgroundColor>
                    <FontHeight>16</FontHeight>
                    <VerticalAlign>CENTER</VerticalAlign>
                    <HorizontalAlign>RIGHT</HorizontalAlign>
                    <GaugeString>%((L:HSpeed,Number))%!d! kt </GaugeString>
                </GaugeText>
            </Element>
            <Element id="IndicationHL">
                <Visibility>(L:onDisplayCond1,bool)</Visibility>
                <FloatPosition>0,24</FloatPosition>
                <GaugeText id="IndicationHLText" bold="true" bright="true">
                    <Size>74,22</Size>               
                    <FontFace>Arial</FontFace>
                    <FontColor>red</FontColor>
                    <BackgroundColor>azure</BackgroundColor>
                    <FontHeight>16</FontHeight>
                    <VerticalAlign>CENTER</VerticalAlign>
                    <HorizontalAlign>CENTER</HorizontalAlign>
                    <GaugeString>HARD LANDING</GaugeString>
                </GaugeText>
            </Element>
            <Element id="IndicationSL">
                <Visibility>(L:onDisplayCond2,bool)</Visibility>
                <FloatPosition>0,24</FloatPosition>
                <GaugeText id="IndicationSLText" bold="true" bright="true">
                    <Size>74,22</Size>               
                    <FontFace>Arial</FontFace>
                    <FontColor>red</FontColor>
                    <BackgroundColor>azure</BackgroundColor>
                    <FontHeight>16</FontHeight>
                    <VerticalAlign>CENTER</VerticalAlign>
                    <HorizontalAlign>CENTER</HorizontalAlign>
                    <GaugeString>SEVERE LANDING</GaugeString>
                </GaugeText>
            </Element>
        </Element>
    </SimGauge.Gauge>
</SimBase.Document>

 

Three things I noticed (I'm running P3D v4.5) :

- if I don't use "always_visible=1" the gauge is not working as it seems it MUST be visibel to get updated. "visible=1" is not sufficient
- I cannot really use code for the Visibility conditions for the various Elements. It seems it can only assess a Bool variable, but not a full XML script - So I had to run the Script in the Update section of the gauge..
- VerticalAlign does not seem to work

 

Happy to discuss....

Archived

This topic is now archived and is closed to further replies.

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.