Skip to main content

IFD panel.xml Basics

Introduction

The panel.xml file allows developers to configure their aircraft-specific IFD installation. A basic understanding of the XML language is recommended when working with panel.xml. With no configuration, an IFD will boot, but provide only limited functionality, and it is not safe to have multiple IFDs without a configuration as they will overwrite data belonging to each other.

Example Dual IFD540/550 Configuration

Below is an example of a simple panel.xml file:

<PlaneHTMLConfig>
<Instrument id="IFD550">
<Name>wt-ifd_1</Name>
<Electric>
<Simvar name="CIRCUIT ON:'IFD550'_n" unit="Boolean"/>
</Electric>
<ComIndex>1</ComIndex>
<NavIndex>1</NavIndex>
<Transponder>True</Transponder>
<RemoteTuningEnabled>False</RemoteTuningEnabled>
<IsFMSPrimary>True</IsFMSPrimary>
<DefaultDatablockPreset>LeftSideTransponder</DefaultDatablockPreset>
<AirframeType>fixed-wing</AirframeType>
<ExternalAirDataSystem>
<AltimeterIndex>1</AltimeterIndex>
</ExternalAirDataSystem>
<VerticalNavigation>true</VerticalNavigation>
<Audio>
<Altitude100>ifd_100</Altitude100>
<Altitude200>ifd_200</Altitude200>
<Altitude500>ifd_500</Altitude500>
<AirspaceAhead>ifd_airspace_ahead</AirspaceAhead>
<TopOfDescent>ifd_tod_chime</TopOfDescent>
<CautionTerrain>ifd_caution_terrain</CautionTerrain>
<TerrainAhead>ifd_terrain_ahead</TerrainAhead>
<TerrainPullUp>ifd_terrain_ahead_pull_up</TerrainPullUp>
<TerrainTerrain>ifd_terrain_ahead_terrain_ahead</TerrainTerrain>
<SinkRate>ifd_sink_rate</SinkRate>
<DontSink>ifd_dont_sink</DontSink>
<PullUpPullUp>ifd_pull_up_pull_up</PullUpPullUp>
<TooLowTerrain>ifd_too_low_terrain</TooLowTerrain>
</Audio>
<ExternalTrafficSystem>
<Type ads-b="true">TAS</Type>
</ExternalTrafficSystem>
</Instrument>

<Instrument id="IFD540">
<Name>wt-ifd_2</Name>
<Electric>
<Simvar name="CIRCUIT ON:'IFD540'_n" unit="Boolean"/>
</Electric>
<ComIndex>2</ComIndex>
<NavIndex>2</NavIndex>
<Transponder>True</Transponder>
<RemoteTuningEnabled>False</RemoteTuningEnabled>
<IsFMSPrimary>False</IsFMSPrimary>
<AirframeType>fixed-wing</AirframeType>
<ExternalAirDataSystem>
<AltimeterIndex>1</AltimeterIndex>
</ExternalAirDataSystem>
<VerticalNavigation>true</VerticalNavigation>
<ExternalTrafficSystem>
<Type ads-b="true">TAS</Type>
</ExternalTrafficSystem>
</Instrument>
</PlaneHTMLConfig>

The file contains the root tag <PlaneHTMLConfig> under which all other tags must be placed. There is one <Instrument> tag for each JS/HTML instrument in the plane. The <Name> tag identifies the specific instrument referenced by its parent <Instrument> tag. The name will be wt_ifd-<Index> where the index is the Index parameter passed to the HTML gauge (VCockpit01_htmlgauge00_params if using the sim attachment).

Tag Scope

Each tag parsed by the IFD has a required scope, defined as the parent under which it must be placed. If a tag is placed in an incorrect scope, it may not be parsed at all or it may be interpreted as a different type of tag with the same name. Therefore, it is important to ensure that all tags are defined in the correct scope.

The tags documentation details the scope of each tag. When the scope is listed as "IFD", this means the tag should be placed directly under an <Instrument> tag.