Flugschreiber Decoder

Analyse des aufgezeichneten Flugverhaltens

Die Engineering Abteilung unseres Kunden benötigt für interne Zwecke ein Software Tool, welches die Datenfiles von Flugschreibern verschiedener Baumuster decodieren und in menschenlesbare Ausgaben umwandeln kann. Das Tool bildet die zu lesenden Formate in einer generischen Referenzdatenbank ab, unterschieden nach Flugzeugtyp und Software Version.

Die Referenzdatenbank beinhaltet ebenso eine generische Beschreibung der gewünschten Ausgabeformate. Über einen compilerähnlichen Ansatz ist das Tool in der Lage, die binären Eingangsdaten auf deklarative Art und Weise in verschiedene decodierte Ausgangsformate zu übersetzen. Zusätzlich verfügt das Tool über Funktionen zur grafischen Darstellung der decodierten Zeitreihen.

Herausforderungen

Um die Aufgabe, ein Tool zu entwickeln, das verschiedene Datenformate von Flugschreibern ausliest, in Engineering Units decodiert und in verschiedene Ausgabeformate oder Visualisierungen übersetzt, zu lösen, steht man im Wesentlichen vor der Herausforderung einer soliden Modellierung der Ein- und Ausgabedaten. Aufgrund der doch sehr unterschiedlichen proprietären Formate stellte deren Modellierung eine Kernherausforderung dar. Eine weitere Herausforderung, die die Usability des resultierenden Tools stark beeinträchtigen kann, war die performante Verabeitung der Eingabedaten.

Lösungsansatz

Wir analysierten zunächst die bereitgestellte Dokumentation in Zusammenhang mit den bereitgestellten Beispieldaten. Nachdem wir die Entwicklung einer domain-specific language für die Beschreibung der Ein- und Ausgabedaten prototypisch falsifiziert hatten, entschieden wir uns für eine einfache Modellerierung der Formate im JSON Format. Wir validierten das Format durch Abbildung der bis dato bekannten File Formate. Im Anschluss daran entwickelten wir einen generischen Decoder, der durch die Inhalte der JSON Refernzdatenbank gesteuert wurde. Anschließend entwickelten wir einen Bearbeitungsprozess und eine passende Benutzeroberfläche.

Technologien

.NET, C#