Copilot Speeches XML File

Overview

Copilot Speeches XML file contains definitions of copilot announcements together with triggers used to their automatic invocation.

There is no simple editor to create your own file. You will have to learn the XML syntax and create the XML file on your own. The following text describes the Copilot Speeches XML file content.

Note that the validity of the checklist file can be verified against CopilotSchema.xsd file. Here you can also find the precise XML file definition.

Basic XML Structure

The file defines root element copilotSet consisting of:

  • meta - see Meta tag explanation,

  • properties - to define custom airplane FS SimVar properties,

  • speechDefinition - (repeated) to define speech definition(s).

The example of brief XML file is:

<?xml version="1.0" encoding="utf-8" ?>
<copilotSet
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xmlns="http://github.com/EFS-Extensions/xmls/copilots.xsd"
  xmlns:g="http://github.com/EFS-Extensions/xmls/global.xsd"
  xsi:noNamespaceSchemaLocation="file://./Xsds/CopilotSchema.xsd">
  <metaInfo>
    ...
  </metaInfo>
  <properties title="custom">
  </properties>
  <speechDefinition title="Positive rate">
    ...
  </speechDefinition>
  <speechDefinition title="Acceleration announcement (100)kts">
    ...
  </speechDefinition>  
</copilotSet>

Futhermore, every speechDefinition consists of:

  • speech defining the announcement,

  • trigger defining condition, when speech is invoked,

  • reactivationTrigger defines condition, when speech trigger can be again evaluated,

  • variables to define custom variables.

A simple example:

 ...
   <speechDefinition title="Acceleration announcement (100)kts">
    <speech type="speech" value="{speed} knots" />
    <trigger>
      <g:and>
        <g:property name="ias" direction="passingUp" expression="{speed}"/>
        <g:property name="ias" isTrendBased="true" direction="above" expression="0"/>
      </g:and>
    </trigger>
    <reactivationTrigger>
      <g:property name="ias" direction="below" expression="10" />
    </reactivationTrigger>
    <variables>
      <g:userVariable name="speed" defaultValue="100"/>
    </variables>
  </speechDefinition> 
...

XML Element Explanation

copilotSet

The element servers as a root element and has no XML attributes.

meta

The description of the meta tag is explained here.

properties

In this section, you can define your own custom properties used by your plane, which should be then linked to the trigger condition(s). The format is defined here.

Note that some properties are already defined by default (see link above). Use this section only if your plane is using some custom property, like L:A32NX_PARK_BRAKE_LEVER_POS.

Example:

...
<properties title="FBW Properties">
  <g:property name="fbwParkingBrake" simVar="L:A32NX_PARK_BRAKE_LEVER_POS"/>
</properties>
...

speechDefinition

The speech definition has one XML attribute:

  • title - used to entitle the speech.

The elements in this element are:

  • speech - mandatory, representing the announcement. For more detail info see here.

  • trigger- defines condition; when the condition is true, the speech is announced and the further trigger checks are disabled. The format of the condition is explained here.

  • reactivationTrigger - defines the condition; when the condition is true, the trigger evaluation is enabled (again). The format of the condition is explained here.

  • variables (optional) consisting of:

    • variable - (repetitive) defining the variable(s) usable in the triggers or speech. The format is explained here.

Examples

<?xml version="1.0" encoding="utf-8" ?>
<copilotSet
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xmlns="http://github.com/EFS-Extensions/xmls/copilots.xsd"
  xmlns:g="http://github.com/EFS-Extensions/xmls/global.xsd"
  xsi:noNamespaceSchemaLocation="file://./Xsds/CopilotSchema.xsd">
  <metaInfo>
    <g:label>Common IFS copilot callouts</g:label>
    <g:author>Marek Vajgl</g:author>
    <g:description></g:description>
    <g:version>0.1</g:version>
  </metaInfo>
  <properties title="custom">
  </properties>
  <speechDefinition title="Positive rate">
    <speech type="speech" value="Positive rate" />
    <trigger>
      <g:and>
        <g:property name="height" direction="above" expression="30" />
        <g:property name="vs" direction="above" expression="100" />
        <g:property name="ias" direction="above" expression="40" />
      </g:and>
    </trigger>
    <reactivationTrigger>
      <g:for seconds="10">
        <g:property name="height" direction="below" expression="1" />
      </g:for>
    </reactivationTrigger>
  </speechDefinition>
  <speechDefinition title="Acceleration announcement (100)kts">
    <speech type="speech" value="{speed} knots" />
    <trigger>
      <g:and>
        <g:property name="ias" direction="passingUp" expression="{speed}"/>
        <g:property name="ias" isTrendBased="true" direction="above" expression="0"/>
      </g:and>
    </trigger>
    <reactivationTrigger>
      <g:property name="ias" direction="below" expression="10" />
    </reactivationTrigger>
    <variables>
      <g:userVariable name="speed" defaultValue="100"/>
    </variables>
  </speechDefinition>  
</copilotSet>

Last updated