Custom Terminal Software Evolution

While in school, I wanted to have a terminal that I could customize for different projects. Although this application was not required by any of the classes that I was taking, I chose to build it as a side endeavor during my free time. Once I started working for Teledyne Optech, the terminal application took on a much more serious role.

The app is written in the Python scripting language and can run on both windows PC's and Linux computers. It is designed as an event driven, multi-threaded app that has a GUI front-end and a back-end that communicates with the GUI via a set of message queues.

ACRC Terminal

Application for the ACRC project

This image (click to enlarge) shows the terminal being used for the ACRC project. It gave us the ability to communicate directly with the microcontroller and/or the Android software. Using some automation scripting, it could also simulate either the ACRC or the smart phone app. It was an invaluable tool for performing latency and battery life tests.

Callisto Terminal

Application for an Embedded Systems project

This image (click to enlarge) shows the terminal being used as a weather station terminal on a CAN network for a lab project in my Embedded Systems class. In this case the terminal allowed my team to quickly gather weather information from any weather station on the network without having to take the time to use a command line. It also incorporated a script (written by another team member) that parsed weather data from a local airport weather station so that the terminal could act as a weather station itself as well.

CZMIL Dash Terminal

Application for Teledyne Optech

When I started working at Optech, I needed a way to interface with the software running on the TS-7800 embedded controllers. My terminal application could communicate with the controllers via a serial connection, but the embedded software required a network connection. Using my old terminal as reference, I wrote a new terminal that featured both serial and network socket functionality.

This image (click to enlarge) shows the terminal in its current state as part of a larger dashboard application. As shown here, the terminal is being used to monitor logging across a network. The terminal is also used to emulate server commands that are used to control the embedded systems.