RESTful User Interfaces

A little more than a year ago, the REDHAWK team published a LiveDVD that inspired us with its Tornado-based web server and AngularJS-based client interface.  So, we moved to extend them something even more flexible feature-rich for future projects by adding things like Frontend Interface support, Device controls, etc.  The work continued over the last year supporting a few projects internally and externally, but without really publishing anything for documentation.  At best we had several Wiki entries about the features, etc., but never really touching the topic of an API.

REST-Python

That lack of information ended earlier this week when we published our Geon’s version of REST-Python and API.  At that link is the full API of our fork of REST-Python along with some general examples for their use.  The site covers what types of requests are acknowledged (HTTP GET vs. Websocket addresses), the return types — and even touches on how to serve your own UI through the server.  And of course there is a download link for a tarball, or you can clone the repository here:

git clone https://github.com/geontech/rest-python

Angular-REDHAWK

And so what about that last bit — the client interface?  Where did it go?

The client interface was originally some of the bits and pieces that stood up admin-console, an AngularJS-based framework that allowed you to launch Waveforms, interact with Components, and view various properties.  As we extended its features to match the new ones added to the server, it became apparent that maybe we should take a different tack on how to build out the framework and directives (HTML tags) so that different elements could be reused between projects.  Often we would want to re-use common things like the representation of a GPS Receiver Device’s unique model behaviors, but wanted the visual representation to be different and vice versa.  That effort to build reusable directives and inheritable framework model elements became Angular-REDHAWK.  Below are several screenshots from different programs that helped refine this work.

REN Control System

The project that kicked this off was our integration effort to use our small ARM-based SDR transceivers to provide SIGINT training.  With either an internal or external coordinator, different Conversations would employ different Actors (SDRs) to use different Waveforms representing the RF training signals of interest.  The SDRs were location-based with GPS receivers, so with a wink-and-nudge to War Games, we made this:

[flexslider slug=”restful-user-interfaces”]

Google Maps Example

Some of the efforts for integrating with Google Maps are provided in the examples for Angular-REDHAWK along with a drop-in GPS Receiver device representation based on our “Dummy GPS Receiver” that implements the GPS FEI IDL.  The example’s output is shown here:

Signal Survey

A more recent project is a spectrum surveyor capable of classifying various signals using various criterion.  This work leveraged the FEI Tuner and SigPlot examples to create a clean interface to an otherwise dynamic and automated survey system.

[flexslider slug=”signal-survey”]

Recent Posts

Ready for an exciting change?

Work with US!