Enhancements to an ATC system for air situation display
Further development of an operational air traffic control (ATC) systems for air situation display (DFS-Phoenix). Main radar data so-called plots are tracked by a so-called tracker to create a track for each air plane in flight. These tracks are transmitted to other sub- or external systems for further processing and/or just displaying the tracks on screen. For this purpose a ATC specific binary protocol (Eurocontrol Asterix) is widely used. Within the project a display software was developed to display tracks and map data based on the Qt 3 C++ framework.
- Brief description of product development:
-
- Development of geographic filters using a point in polygon algorithm implemented in C and C++ (Qt). Different usages of this generic algorithm to filter plots and tracks within the tracker program.
- Design and implementation of a redundant master slave concept for the tracker process including communication between master and slave for data replication.
- Development of a concept for automatic master slave detection and negotiation between the tracker processes using UDP broadcast or multicast packets send by the tracker processes.
- Enhancement and improvement of the encoder and decoder for written in C of the Eurocontrol asterix standard. The Eurocontrol asterix standard is a high flexible byte oriented binary format.
- Design and implementation of a modular dialog concept (more than 30 dialogs) for the display component.
- Implementation of different dialogs for the display component of the controller working position (CWP).
- Porting the complete software from Linux/x86 to Linux/HP-PA.
- Implementation of a project logging framework based on the concepts of log4j or log4cpp.
- Design of a concept for managing "release notes" in a middle to large version control system (CVS) with many branches.
- Brief description of administrative tasks:
-
- Changed build process of the complete software from qmake (Qt) to GNU based autoconf and automake tools.
- Installation and establishing an intranet web server (Apache2) used for serving a wiki and bug tracking for the project.
- Development of a central repository for automated builds of needed external software packages such as compiler, libraries and other tools. With this repository it is very simple to add or delete a tool for the projects development environment.
- Development of scripts for continuous quality assurance of the software (nightly builds, unit tests).
- Merging of different development branches into the main development branch of the software using version control features (CVS merging).
- Installation and establishing of a bug tracking system (Bugzilla).
- Analysing of the C/C++ software and development of improvements and optimisations for better code quality, runtime behaviour, more object oriented approaches and software security issues such as buffer overflows.
- Configuration and usage of a C++ source code analysis tool (QA-C++) to improve the C++ source code (static C++ source code analyse).
- Participation and support for factory acceptance test (FAT) and system acceptance test (SAT).
- Support for colleagues in topics to C/C++ and Unix.
- Project role:
- Software architect, Software developer, Software quality assurance.
- Operating systems:
- Linux/x86, Linux/HP-PA
- Development environment:
- GNU Make, GNU autotools, GNU C/C++-Compiler, CVS, Bugzilla, GNU Emacs, doxygen, Tiki Wiki, QA C++, gengetopt, gperf
- Libraries:
- stdc++, Qt 3, CppUnit
- Standards, Protocols:
- Eurocontrol Asterix, XML
- Databases:
- SQLite
- Hardware:
- x86, HP-PA-RISC
- Customer, Industry:
- German Air Traffic Control (Deutsche Flugsicherung GmbH), Transport industry
- Time, Duration:
- January 2004 - May 2006
