This GitHub repository contains an AFTN Terminal Application; this application is a standalone client that runs as a GUI application. The application is cross-platform compatible running on both Linux, Mac OSX and Windows platforms.
The AFTN Terminal Application is implemented using Python version 3.10.7. A more recent version of Python must be used in order to support switch (Python match) statements used in the source code. The GUI has been written using the Tkinter library.
An acronym list is provided at the end of this readme for readers unfamiliar with ATC acronyms.
The AFTN Terminal Application uses a standalone ICAO ATS and OLDI Message Parser and ICAO Field 15 Parser that are both available as open source GitHub projects that can be found here for the ICAO Message Parser and here for the F15 Parser.
All software for the AFTN Terminal Application, ICAO ATS and OLDI Message Parser and ICAO Field 15 Parser GitHub repositories have been written by Peter Venton (user pventon on GitHub).
The project has been built using the PyCharm 2022.2.2 (Professional Edition) IDE running on a Linux Mint OS. Installing Python 3.x and the PyCharm IDE was straightforward with everything working as expected. Please donate and support Linux Mint if your able to do so, its a great OS!
All development has been carried out on a Linux Mint platform and has NOT been tested on either Windows or Mac OSX platforms. The software has been written with cross-platform support in mind.
The AFTN Terminal Application processes ICAO ATS messages. The application is structured similar to an email client with a message tree in a left pane for organising messages, a list of messages when a message folder is selected in the tree pane and a message display area that contains the content of a selected message along with any associated error messages.
Errors can be double-clicked to highlight erroneous fields in a message making it easy to locate and fix message errors. If multiple errors are detected, all erroneous fields can be simultaneously highlighted.
The Extracted Route Sequence for a flight can be displayed in a dedicated window as shown below.
A message editor is provided to edit received messages and / or creating new messages.
A simple message template is provided when creating and editing new messages. All ICAO defined ATS messages are supported and templates for all supported messages are provided.
More documentation will follow shortly; this is an initial release and documentation will follow soon.
15th November 2022 - The source code is now fully documented;
15th November 2022 - The Toolbar buttons have been added with supported functionality apart from the print and search buttons.
15th November 2022 - Currently, the AFTN interface and associated protocol handler have not yet been implemented; this will be provided in a future release.
The following have yet to be provided:
- A TCP/IP protocol handler has to be provided that complies with ICAO Annex 10, Vol II in order to provide an AFTN network interface for the application;
- Full documentation has to be provided, this includes a User Manual
Although every attempt has been made to reduce the number of software coding errors and resulting chaos that can ensue as a result of such errors, it is highly likely that this early release will have a few bugs. Substantial testing has been carried out on the GUI, but even with so many tests, there may still be some bugs in the software.
Should any use be made of this software and errors found, do not hesitate to contact me at peter.venton@flightatm.com, so I may attempt to fix/correct any issues, or alternatively post any errors on the discussion page or bug tracker that I believe is supplied as part of GitHub.
Enjoy and Good Luck!
There is a file called RunAftnTerminal in the project root directory that is the application entry point.
In this file there is a working directory path specified that must be set to a local directory; this directory will be used to store all messages processed by the application. Do not put other files in the working directory or any of its subdirectories.
Each message is stored as an XML file and these files are placed in the working directory and its subdirectories.
The project was written using the PyCharm IDE; a 'test' working directory is provided as part of the GitHub repository in the directory shown in the usage code example shown below. This directory contains a number of ATS messages that can be used to evaluate the application functionality.
# The following is the content of the RunAftnTerminal...
from AFTN_Terminal.ApplicationMainWindow import ApplicationMainWindow
#
# Set the working directory as shown to a local directory
# The application creates subdirectories in this directory that are displayed in the tree
# displayed in the application.
aftn = ApplicationMainWindow("/home/ls/PycharmProjects/AFTN-Terminal-Application/AFTN-App-Working-Directory")
#
# Run the application, this will display the GUI
aftn.start_application()
- ABI OLDI Advanced Boundary Information
- ACH ATS ATC Change Message
- ACT OLDI Activation Message
- ACP ATS Advanced Coordination Procedure Message
- ACP OLDI Advanced Coordination Procedure Message
- ADEP Aerodrome of Departure (Given as an ICAO Location Indicator)
- ADES Aerodrome of Destination (Given as an ICAO Location Indicator)
- AFP ATS ATC Flightplan Proposal Message
- AIP Aeronautical Information Publication
- ALR ATS ATC Alerting Message
- AMA OLDI Arrival Management Message
- APL ATS ATC Flight Plan Message
- ARR ATS Arrival Message
- ATC Air Traffic Control
- ATS Air Traffic Service
- CDN ATS Change Message
- CDN OLDI Coordination Message
- CFMU Central Flow Management Unit
- CNL ATS Cancel Message
- COD OLDI Advanced Coordination Procedure
- CPL OLDI Current Flight Plan Message
- CPL ATS Current Flight Plan Message
- DCT Direct (used to specify direct routing between points)
- DEP ATS Departure Message
- DLA ATS Delay Message
- ERS Extracted Route Sequence
- EST ATS Estimate Message
- ETO Estimated Time Over
- FPL ATS Flight Plan Message
- FPR Flight Plan Record
- FNM Gander Oceanic Message
- GAT General Air Traffic
- GUI Graphical User Interface
- ICAO International Civil Aviation Organisation
- IFR Instrument Flight Rules
- IFPS Initial Flight Planing System
- IFPSTOP Indicates end of IFR routing (used by the CFMU IFPS)
- IFPSTART Indicates start of IFR routing (used by the CFMU IFPS)
- INF OLDI Information Message
- LAM OLDI Logical Acknowledgement
- MAC OLDI Message for the Abrogation of Coordination
- MFS Oceanic Centre Message
- OAT Operational Air Traffic (typically military)
- OCM OLDI Oceanic Clearance Message
- PAC OLDI Preliminary Activation Message
- PRP Published Route Points
- RAP OLDI Referred Activate Proposal Message
- RCF ATS Radio communication failure
- REJ OLDI Reject Message
- REV OLDI Revision Message
- RJC OLDI Reject Coordination Message
- ROC OLDI Request Oceanic Clearance Message
- RRV OLDI Referred Revision Proposal Message
- RQP ATS Request Flight Plan Message
- RQS ATS Request Supplementary Flight Plan Information Message
- SBY OLDI Standby Message
- SI Metric measurement system
- SID Standard Instrument Departure
- SPL ATS Supplementary Flight Plan Message
- STAR Standard Arrival Route
- VFR Visual Flight Rules