XML: Decode Flags
From FSDeveloper Wiki
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 & 128 !=</Macro> <Macro Name="IsLoc">(A:NAV CODES:1, flags) 128 & 128 ==</Macro> <Macro Name="HasGS">(A:NAV CODES:1, flags) 64 & 64 ==</Macro> <Macro Name="HasBCGS">(A:NAV CODES:1, flags) 32 & 32 !=</Macro> <Macro Name="HasDMEatGS">(A:NAV CODES:1, flags) 16 & 16 ==</Macro> <Macro Name="HasNAVsignal">(A:NAV CODES:1, flags) 8 & 8 !=</Macro> <Macro Name="HasVoice">(A:NAV CODES:1, flags) 4 & 4 ==</Macro> <Macro Name="IsTacan">(A:NAV CODES:1, flags) 2 & 2 ==</Macro> <Macro Name="HasDME">(A:NAV CODES:1, flags) 1 & 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 & 1 ==</Macro> <Macro Name="IsLocalizerTuned">(A:NAV BACK COURSE FLAGS:1, flags) 2 & 2 ==</Macro> <Macro Name="IsOnCourse">(A:NAV BACK COURSE FLAGS:1, flags) 4 & 4 ==</Macro> <Macro Name="IsStationActive">(A:NAV BACK COURSE FLAGS:1, flags) 128 & 128 ==</Macro>