Our customer’s engineering department requires a software tool for internal purposes which can decode the data files of flight recorders of different types and convert them into human readable output. The tool displays the formats to be read in a generic reference database, differentiated by aircraft type and software version.
The reference database also contains a generic description of the desired output formats. Using a compiler-like approach, the tool is able to translate the binary input data into various decoded output formats in a declarative manner. Moreover, the tool provides functions for the graphical representation of the decoded time series.
To solve the task of developing a tool that reads different data formats from flight recorders, decodes them into engineering units, and translates them into different output formats or visualisations, one is essentially faced with the challenge of a solid modelling of input and output data. Due to the vastly different proprietary formats, modelling them was one of the primary challenges. Another challenge that could strongly affect the usability of the resulting tool was the high-performance processing of the input data.
We first analysed the documentation provided in connection with the sample data provided. After we had falsified the development of a domain-specific language for the description of the input and output data prototypically, we decided on a simple modelling of the formats in JSON format. We validated the format by mapping the previously known file formats. Subsequently, we developed a generic decoder which was controlled by the contents of the JSON reference database. We followed this up with the development of an editing process and a suitable user interface.