sword in the stone   Hayne of Tintagel
Services  /  Portfolio  /  DFT Microsystems

DFT Microsystems Test Development Environment

I designed and implemented (with a small team that I supervised) a development environment for testing high-speed electronics at DFT Microsystems. This environment allows users (electrical engineers and technicians) to design their own tests by assembling software components using a GUI. The tests can then be run (using DFT Microsystems hardware modules) and graphs of the results viewed and further analysis done.

The environment was designed to cater to users of widely varying ability and interests. It provides pre-built tests for common situations that can be run by users with little or no domain knowledge. But it allows more sophisticated users to create tests of arbitrary complexity by using Python code to configure and control the provided software components or to get low-level access to the DFT Microsystems hardware. The test scripts generated by the GUI can be run from within the GUI or from the command-line.

Implementation technologies

The core of the test development environment is implemented in Python. A very modular architecture allows software components to be implemented independently and discovered at runtime (via Python introspection) by the GUI which is implemented in C++/CLI with the .NET framework. The GUI interacts with the Python classes via the Python C API. The GUI allows users to create instances of Python classes and modify their attributes without the GUI itself "knowing" anything about these classes. The Python code entered by the user is automatically syntax highlighted via the ScintillaNet text editing component. Graphs of the test results are drawn using NPlot. The source code for the test development environment comprises about 30000 lines of Python code and 40000 lines of C++ code.

Overview of functionality

The following images illustrate some of the functionality provided by the test development environment.