REDHAWK SDR Integration
HAWKEYE provides direct access to REDHAWK SDR’s internal Python-based model by way of a simple socket-based messaging gateway. This messaging gateway only requires REDHAWK SDR to be installed with access to OmniORB. Otherwise, it can be deployed elsewhere on the network.
The resulting message API allows the end user to not only view details of multiple REDHAWK entities simultaneously, but also control those entities. End users are free to change properties, manage running applications, etc. by issuing simple JSON-encoded messages by one of the transport mechanisms supported by Socket.io
HAWKEYE’s various proxy objects take advantage of REDHAWK SDR’s underlying event infrastructure to provide asynchronous “push” updates to the client interface over Socket.io. Each entity’s proxy manages whether or not to push these events.
Example: a new Domain is detected, and its proxy is created. This proxy attaches to the ODM Channel to capture entities as they join and leave the Domain. As shown here, a Node and its Device come online, are browsed, and depart using HAWKEYE’s default view.
This Socket.io connection is bidirectional. A client interface for example can request and update of a Component’s property or start a BULKIO port streaming data.
jQuery Event Updates
Here a simple Processing.js sketch instance is attached to a BULKIO port’s HAWKEYE widget. The original widget retains its ability to start or stop the stream, and each message is passed to the sketch for plotting in a standard HTML5 canvas.
Since Express.js allows you to serve or replace any default file to the client-side interface, you can control what exactly how to use the stream. A HAWKEYE-backed interface can effectively be driven by any entity — including individual property values.