Skip to content

Latest commit

 

History

History
85 lines (70 loc) · 4.13 KB

FPL.md

File metadata and controls

85 lines (70 loc) · 4.13 KB

Flight Planning

This example is significantly larger than the previous examples and is in many ways more typical of the type of system that would be encountered in industry. It is characterised by:

  • a state of information on flights is held;
  • messages are received concerning new and existing flights;
  • the state is updated based on the content of the received messages;
  • maintenance is performed on the state to, for example, remove expired entries;
  • the state is queried for information.

Background

One of the tasks required of an aircraft operator is to report an intent to fly to the Air Traffic Services (ATS) provider. The operator must indicate where and when they intend to fly, and provide various items of information concerning the flight and the aircraft with which the flight will be conducted.

The reporting is carried out via a number of standard flight planning messages. These messages are defined by the International Civil Aviation Organisation (ICAO) and documented in the Procedures for Air Navigation Services: Air Traffic Management (PANS-ATM). It is document number 4444 published by ICAO, so is often referred to as Doc 4444.

Appendix 3 of PANS-ATM describes a number of messages employed for communicating flight information. A subset of those specifically relate to flight planning:

Message Type Purpose
FPL File a plan for an intended flight
DLA Report a delay to a previously filed flight
CHG Modify a previously filed flight plan
CNL Cancel a planned flight
DEP Report a flight has departed
ARR Report a flight has arrived

An example FPL message is:

(FPL-ABC123-IS
-B738/M-SADE2E3GHIRWZ/LB1
-YSSY0400
-M079F380 DCT WOL H65 RAZZI Q29 LIZZI DCT
-YMML0100
-PBN/A1B1C1D1O2S2T1 NAV/RNP2 DOF/230220 REG/VHXYZ SEL/AFPQ CODE/7C6DDF OPR/FLYOU ORGN/YSSYABCO PER/C)

Flight ABC123 is flying from YSSY (Sydney) to YMML (Melbourne) departing 0400 on 20/2/2023 with an expected flight time of one hour. The aircraft is a Boeing 737-800 (B738). The text WOL H65 RAZZI Q29 LIZZI DCT is a description of the route the flight will follow. The last line contains various pieces of additional information such as the aircraft registration (VHXYZ).

A collection of numerically labelled fields are defined, each containing a subset of the information that relates to a flight. Different messages are then defined by selecting the appropriate set of fields for the purpose of the message. In the above FPL, those fields are:

Field Number Content
7 ABC123
8 IS
9 B738/M
10 SADE2E3GHIRWZ/LB1
13 YSSY0400
15 M079F380 DCT WOL H65 RAZZI Q29 LIZZI DCT
16 YMML0100
18 PBN/A1B1C1D1O2S2T1 NAV/RNP2 DOF/230220 REG/VHXYZ SEL/AFPQ CODE/7C6DDF OPR/FLYOU ORGN/YSSYABCO PER/C

The Specification

The specification is concerned with the processing of flight plan and related messages, and consists of:

  • a model of the data elements, fields, flights and messages;
  • definition of invariants on the flights and messages, which primarily capture consistency constraints between the different fields;
  • the definition of a state that models a collection of flight information that might be held by a system;
  • given a state and a received message, the specification of how a revised state is created from the supplied state and the message;
  • some maintenance activities on the state;
  • querying the state.

The model and program specification are contained in five modules:

Module Purpose
Core The core data elements from which higher level entities are built
Field The fields from which the messages are assembled
Flight Data entity capturing all information on a flight
Message The various messages employed for flight planning purposes
State The processing of messages with respect to a state

These modules depend on the general purpose definitions in Util, Geo and Temporal.