System Level Interface Control

SLIC is the brain inside Teledyne Optech's CZMIL system (learn more about CZMIL at the bottom of this page). It runs as a headless application and handles all of the command and control aspects of CZMIL. It interfaces with the operator through two separate software applications. The first is the Flight Management System (FMS) which the operator uses to define the parameters of the mission and to direct the pilot of the aircraft. The second is the Graphic System Level Interface Control (GSLIC) which acts as a complete front-end interface for SLIC.

This is by far the largest project that I have done for Teledyne Optech. It took almost a year to complete the first iteration. I created the project proposal, sold the idea to our customers, and designed the software. Since I was the only software engineer on our team at the time, I wrote 96% of the code. Towards the end I tasked an independent contractor to finish a couple of the modules since he was already familiar with the software that they interfaced with.

Since SLIC is a headless application there is not much to show operation wise. Therefore, this page will focus on design concepts.

SLIC Design Concepts

This version of SLIC (v5) is a complete redesign of the previous versions of SLIC. This redesign was motivated by ongoing issues with the old design and was re-written completely from scratch. The older version was a multi-process application written in pure C. Most sub-system behavior was hard coded. This made updates tedious and component upgrades were extremely difficult to implement. My new design was created to be modular and highly extensible. I did not hard code any component behaviors which allowed the system operation to become fluid.

For implementation I chose to use C++11 (since support for C++14 was limited on CentOS at the time). I took a multi-level event driven approach for the low-level design. For modularity and extensibility, I used abstraction layers with common interfaces.

Abstraction Layers

The core functionality of the SLIC application is insulated from all hardware by using abstraction layers. This protects the core functionality from any platform or hardware component changes. This image shows the SLIC control abstraction design; including the two abstraction layers that separate the SLIC framework from both the PC and the CZMIL sub-systems.

The OS abstraction layer acts as an adapter between the application framework and the underlying operating system. This provides OS independence for the application’s core framework. For example, if the software were to be moved from Linux to Windows then only the OS abstraction layer would have to be altered.

The hardware abstraction layer adheres to the same concept as the OS abstraction layer. All hardware specific functionality will be contained within this layer. This way swapping or updating hardware components will only affect this layer and not the core application framework.

Modular Design

The design of SLIC is based on modular software design concepts. The command and control responsibilities are separated into individual modules that can easily be created, altered, and swapped. This design also allows for rapid development of third-party hardware modules as well as allowing for the ability to use hardware simulation modules.

This image gives a basic overview of the modular design concept as applied to SLIC. Each piece of hardware or external software will be controlled by a corresponding module within SLIC. Each module’s state behavior will be defined by an operation file. All of the modules within SLIC will be conducted by the Operation Manager (OM). The initialization parameters for the OM are defined in the configuration file. This allows for the overall behavior of the CZMIL system to be changed on the fly without the need to recompile the software.

What is CZMIL?

Coastal Zone Mapping and Imaging LIDAR

CZMIL is a multi-sensor airborne LIDAR survey system that collects three dimensional bathymetric and topographic data. It also collects photographic and hyperspectral imagery which is then fused with the with the 3D data using Optech's HydroFusion software.

To learn more about CZMIL, visit the official product page.