FLIDAS architecture

FLIDAS is designed for extensibility and platform independence and to be used as a building block in your flight testing department. This page explains the software architecture behind it.

FLIDAS is developed in Java and is built upon the Eclipse framework. As a result we can generate versions for example for Windows / Linux 64 bit. (Versions for other OS like Mac OS etc. can also be generated but are not regularly tested.) This range of operating system support means you will likely not be forced to change your flight testing tool chain when your system environment becomes obsolete. Eclipse also offers strong support for Plug-in based development enabling customer specific extensions directly into the GUI as if they were natively built inside.

It is also possible to bypass the GUI at all and create specific tools directly on command line level. This helps integrating into existing tool chains and supports automated processing. It is also possible to replace steps of your existing tool chains when they become obsolete (for example migrating from legacy recording format to CH10).

Some people will say that Java applications must be slow but this was many years ago. Today's Java versions offer performance comparable to the performance of C++ code or sometimes even faster depending on the application area.

Components

IRIG 106 Library

The IRIG 106 library is Data Bus Tools own core for all FLIDAS based applications. It offers access to the elements mainly defined in IRIG 106 chapter 10 but also some of chapters 4 and 9. The complete code is independent of any GUI and can be used as a building block for command line tools or dedicated GUI applications.

The concept requires that any CH10 file being used is read once before further processing ("scanning"). This scanning gathers basic information for faster access later on. It does not keep the whole file in memory but rather creates an index with additional information. The scanning can be configured to bypass CH10 data types of no interest and certain actions like CRC checking. The scanning is robust enough to recover from most problems in the file and read as much as possible.

There is some common functionality between CH10 files and Data Streams but some other rules apply for Data Streams. They heavily rely on parallel processing of different tasks like timely receiving, ordering, distributing and processing the incoming data. To do this without causing inconsistent state between parallel running tasks a live data stream only becomes accessible when it has properly initialized. This means that either TMATS has been loaded from an external file or has been processed from the data stream. At this time the main properties of the data stream and the contained channels have initialized and will not change anymore. The live data streams will not collect CH10 packets for later inspection like a CH10 file. Live data streams will just maintain the sums of received CH10 packets and provide the CH10 packets to the places where they are to be processed, like a live display. After this the CH10 packet is gone.

After scanning the file or initializing the live data stream, further actions like sequential processing of selected channels for data exporting and display etc. is possible. Also user tasks can now be processed in parallel to make safe use of multi-processor systems. So you can run several export and other jobs and even on different files or data streams at the same time.

FLIDAS GUI

This component extends the IRIG 106 library with a graphical user interface (GUI). It allows handling several CH10 files and live data streams in parallel, inspecting CH10 packets and their content, exporting data etc. This component is available for free.

Extending GUI and library

The FLIDAS GUI as well as the IRIG 106 library defines extension points for further plug-ins. These extension points can for example be export formats, visualizations or decoding of CH10 data types (also recorder vendor specific types like DATaRec 4 CAN Bus). New extension points can be added if required. If any plug-in is installed the additional functions will be available in the same way as build-in functionality. These plug-ins may be commercial or customer specific or later on even home made by customers with access to the FLIDAS application programming interface (FLIDAS API).

Commercial Basic Plug-in

This plug-in uses some of the extension points of the FLIDAS GUI to extend functionality on the raw data and protocol level of CH10 files.

Data Streaming Plug-in

This plug-in uses some of the extension points of the FLIDAS GUI to extend functionality for live display of severeal types of protocol data, graphical plotting raw values and replaying live video. It requires the Commercial Basic Plug-in.

Parameter Plug-in

This plug-in uses some of the extension points of the FLIDAS GUI to extend functionality by decoding of raw data into engineering values and offering export and display of these. It also requires the Commercial Basic Plug-in. The Parameter Plug-in adds new extension points for example for customer specific parameter description file formats (ICDs).

Parameter Streaming Plug-in

This plug-in provides the feature to decode live incoming data to engineering units and defines extionsion points to subscribe to this data for live processing. It also adds some basic live display capabilities for this decoded data using the same extension point. It requires the Parameter Plug-in as well as the Data Streaming Plug-in.

Command Line Tools

For customers that don't need a GUI and want to add CH10 processing to existing automated tool chains, command line tools can be build based on the IRIG 106 library. This already offers some command line support so command line tools may be as easy as several dozen lines of code.

Plug-ins

In the same way that Data Bus Tools offers extended FLIDAS functionality as separate plug-ins there can also be customer specific plug-ins. Depending on the requirements this can range from several dozen lines of code to large extensions.

Conclusion

FLIDAS can be adapted to many customer requirements. These can be added to the GUI or be made available standalone as command line tools. The new functionality can be made available based on existing and tested code which saves you time and money. Reasonable extensions can be done with several hundred lines of code and can be made available at affordable prices in a timely manner without heavy bureaucracy. The broad platform independence saves you worries about future changes in your system environment.

So download the free version from the product page or buy the commercial one for a very reasonable price to get an impression of what is possible. Then approach us for your specific requirements to discuss how they can be integrated.