June 11, 201510 yr 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: 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=1size_mm=80,50window_size=0.08,0.05window_pos=0.0,0.5background_color=0,0,0ident=14080zorder=5alpha_blend=0.4type=specialgauge00=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!
June 12, 201510 yr Author I forgot: In the [Window Titles] section in panel.cfg, add WindowXX=VSpeed to get the gauge selection into the pulldown menus.
June 12, 201510 yr 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>
April 11, 20206 yr 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=specialgauge00=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 >= (>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 <= (L:VSpeed,Number) -400 > and (>L:HardLanding,Bool) (L:VSpeed,Number) -400 <= (>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.