XML: Decode Flags

From FSDeveloper Wiki
Jump to: navigation, search

XML Decode Macros

There are several XML variables that are returned as "flags" in an 8bit format. In order to use them you must "decode" them. This is an easy method to use as all the script is encapsulated in a set of <Macro>s for quick and simple use. Just copy/paste these <Macro> definitions to your XML gauge script.

Examples of usage are at the bottom of this entry.

// DO NOT COPY THIS! It is for reference only //
128 BIT7: 0 = VOR  1= Localizer  
64  BIT6: 1 = glideslope available  
32  BIT5: 1 = no localizer backcourse  
16  BIT4: 1 = DME transmitter at glide slope transmitter  
8   BIT3: 1 = no nav signal available  
4   BIT2: 1 = voice available  
2   BIT1: 1 = TACAN available  
1   BIT0: 1 = DME available

MACRO Definitions for the NAV CODES variable

<Macro Name="IsVor">(A:NAV CODES:1, flags) 128 &amp; 128 !=</Macro>
<Macro Name="IsLoc">(A:NAV CODES:1, flags) 128 &amp; 128 ==</Macro>
<Macro Name="HasGS">(A:NAV CODES:1, flags) 64 &amp; 64 ==</Macro>
<Macro Name="HasBCGS">(A:NAV CODES:1, flags) 32 &amp; 32 !=</Macro>
<Macro Name="HasDMEatGS">(A:NAV CODES:1, flags) 16 &amp; 16 ==</Macro>
<Macro Name="HasNAVsignal">(A:NAV CODES:1, flags) 8 &amp; 8 !=</Macro>
<Macro Name="HasVoice">(A:NAV CODES:1, flags) 4 &amp; 4 ==</Macro>
<Macro Name="IsTacan">(A:NAV CODES:1, flags) 2 &amp; 2 ==</Macro>
<Macro Name="HasDME">(A:NAV CODES:1, flags) 1 &amp; 1 ==</Macro>
// DO NOT COPY THIS! It is for reference only //
1   BIT0: 1 = back course available
2   BIT1: 1 = localizer tuned in
4   BIT2: 1 = on course
128 BIT7: 1 = station active

MACRO Definitions for the NAV BACK COURSE FLAGS variable

<Macro Name="IsBCavailable">(A:NAV BACK COURSE FLAGS:1, flags) 1 &amp; 1 ==</Macro>
<Macro Name="IsLocalizerTuned">(A:NAV BACK COURSE FLAGS:1, flags) 2 &amp; 2 ==</Macro>
<Macro Name="IsOnCourse">(A:NAV BACK COURSE FLAGS:1, flags) 4 &amp; 4 ==</Macro>
<Macro Name="IsStationActive">(A:NAV BACK COURSE FLAGS:1, flags) 128 &amp; 128 ==</Macro>