GNU Radio HUD A graphical user interface proposal
project started 27 Jan 2012 by Michelle Thompson
[email protected] www.delmarnorth.com/microwave
hi!
Inspiration
“Artificial Intelligence in Wireless Communications” is a book by Thomas W. Rondeau and Charles W. Bostian. It contains an objective function map (page 69) that provided a framework for a “head-up” display (HUD) of system behavior and interactions.
pg 69 After sketching out the objective function map, and listing the knobs and meters for each of the objective functions, it seemed like the map might be a good thing to experiment with while learning how to use Qt4. Qt4 is a cross-platform graphical user interface tool. Using C++, one body of code can create applications for Linux, Windows, and Mac.
Objectives Solid arrows are direct objective dependencies. Dotted lines are indirect dependencies through one or more knobs.
Objectives as GUI If you select an objective function, then the blue box in the middle presents the meters and knobs for that objective function. Manipulate the knobs. Observe the effects.
Ok... •• But how do you operate the radio? This isn’t really a radio operation disply, is it? This display shows the multi-objective functionality of GNU Radio and allows for quick and easy modifications to the various parameters that affect each of the objective functions. This display is intended to clearly show the dependencies by graying out objective functions not affected by the current set of knobs in the center box. It allows experimentation and design.
•• What else is good about this GUI? This GUI can be adapted to a touchscreen.
•• What about an operating screen? I think the panadapter style screen is the best user interface for radio operation. A panadapter screen below this one would be my next big step in incorporating GUI elements for “normal” operation of a radio.
Whatcha got so far?
Here’s the landmarks along the way of my journey through Qt4. The Bit Error Rate box has connected boxes and sliders. The Find! box is set up to implement search functionality. All of the infrastructure, such as close and the check boxes modifying what type of search function is called, works.
Adding a bit at a time At upper right is a screen shot of the qtDesigner tool. Up until today, I was learning how to use Qt by hand-coding. However Qt has a layout design tool that makes it easy to experiment with graphical user interface elements. At lower right is a screen shot of the resulting graphical user interface element, which has regular expression based input format checking built in, in front of the main c++ file.
Shape change Above is a graphical user interface element in simple mode. If you click more, the element changes shape into an advanced mode, with more options for sorting. At left is the element in advanced mode positioned over the working Qt4 Designer screen and console windows with the code and compilation record.