REDHAWK Release Notes, Version 1.10
The effort in REDHAWK 1.10 focused on simplifying the user interaction within the IDE, improving how REDHAWK handles FrontEnd Interface Devices and logging, improving the scalability of the Core Framework, and adding a new interface to support bursty data.
New Features and Functionality
The following new features and functionality were added in REDHAWK 1.10.
IDE Changes
- The ability to connect to BulkIO CORBA connections using native omniORB libraries has been added. This provides a significant increase in the bandwidth of the BulkIO connections and aids in the plotting of high speed data.
- A Connect Wizard was added to simplify the process of creating connections manually.
- A one-step control panel generation button was added to simplify the process of generating Control Panels.
- A text filter box that accepts regular expressions was added to the Diagram Palettte to simplify the process of finding Components.
- The ability to launch additional Components into running Waveforms was added to simplify testing Waveforms. This feature is available for Waveforms within the Sandbox AND on a Domain.
- REDHAWK Event Channels were added as elements displayed within the SCA Explorer.
- The Event Viewer received the following improvements:
- The controls at the top of the Event Viewer were modified.
- Channels are now added via the context menu from the SCA Explorer or the CORBA Name browser view.
- The name of the View now matches the name of the Event Channel to which the View is connected.
- Events are now sorted by time in reverse order (by default).
- Clear and Scroll Lock buttons were added.
- Options to deploy projects to the Target SDR via Hot Keys or a context menu were added for flexibility.
- The ability to add arbitrary arguments to the nodeBooter process for launching Domain and Device Managers has been added.
- The Name Browser View was updated by adding icons for REDHAWK-related Components that match those found in the SCA Explorer.
- An Octave Wizard and code generator was added to simplify converting existing M-files into REDHAWK C++ Components. The user imports an existing M-file, as well as any required dependent M-files, and then maps the M-file’s inputs and outputs to REDHAWK Ports and Properties.
- The ability to plot dataSDDS Ports was added.
- The IDE now displays non-PRF Runtime Properties as read-only.
- The Snapshot Tool now provides the ability to create a Custom Connection ID to use when acquiring samples.
- The SRI View was created to enable the IDE to connect to an output Port and get the push SRI call and display this information.
- Many improvements were made in how REDHAWK handles FrontEnd Interface
Devices.
- An Allocation wizard was added to enable users to allocate a tuner on a FrontEnd Interface Device.
- A FrontEnd Device Project wizard and code generator template was added to enable users to quickly create FrontEnd compliant RX or TX tuner Devices.
- The REDHAWK IDE can now be used to plot data being passed through a FrontEnd Interface tuner.
- The REDHAWK IDE can now be used to interact with FrontEnd Devices using the SCA Explorer View. These interactions include exploring the Devices and allocating and deallocating tuners and listeners.
- The REDHAWK IDE can now be used to interact with FrontEnd Devices via a Domain connection.
- The REDHAWK IDE can now be used to interact with FrontEnd Devices using the Eclipse Property view.
C++ Components/Devices Changes
- Logging has been upgraded. It is now possible to perform logging on a per-Component basis rather than for the whole class. Also, new appenders have been added that allow logging to be accessed through the network or the event service.
- Allocation callbacks have been added to C++ Devices. Instead of overloading the allocateCapacity call, individual callbacks can be created and registered against any allocation Property on a Device.
- FrontEnd Interface support has been extended for C++. A wizard in the IDE guides a developer through the decisions necessary to establish the XML for a FrontEnd Interfaces-compatible Device. Based on this XML, the code generators generate a Device that contains specialized callbacks that reduce the implementation burden on the developer.
Python Changes
Property change callbacks can now be created and registered in the same way as C++ and Java.
Interface Changes
- A new interface, Burst I/O, has been created. This interface supports the rapid delivery of bursty data, or data whose SRI changes frequently. Use and support for Burst I/O follows similar patterns to Bulk I/O. Support is available in C++, Python, and Java.
- Bulk I/O Port implementations now support multi-out capabilities. When the Component or Device contains the ConnectionTable property, all Bulk I/O or Burst I/O Ports on the Component or Device support the pairing of stream ID and connection ID.
Tooling Changes
- The Sandbox now contains a SoundSink. The SoundSink creates audio based on input coming through a Bulk I/O Port. The Sandbox also supports artificial event channels, allowing Components that have event channel interfaces to connect to an event channel outside the context of the event service.
- qtbrowse, a tool to inspect running domains, has been updated to work with Qt4. A new qt tool, rhlauncher, has been created. This tool is a graphical convenience tool for running domains.
Core Framework Changes
- The Domain Manager can now be connected to other Domain Managers. When this connection exists, if a usesdevice relationship cannot be satisfied by the local Domain, it will delegate the allocation to any other registered Domain.
- The search algorithm used by the Application Factory for Devices suitable for an Application’s Components has been substantially accelerated.
GNUHAWK Changes
GNUHAWK Components now support complex properties.
Basic Components Changes
DataConverter 2.0 has been upgraded to DataConverter 3.0. Only DataConverter 3.0 is included with the Basic install. If you want to use DataConverter 2.0, you must download it separately and install from source.
Upgrading from a Previous Version
Upgrading from REDHAWK 1.9.X
REDHAWK 1.9.X projects can be imported and re-generated with the REDHAWK 1.10.X tooling without any modifications.
Upgrading from REDHAWK 1.8.X
If you are upgrading from a previous 1.8.x version of REDHAWK, some software from the 1.8 series dependencies must be uninstalled before installing the REDHAWK 1.10 series. The following procedure explains how to uninstall the software.
- Enter the following command:
- Additionally, if you are using a Redhat/CentOS 5 system, enter the following
command:
This restores the system-provided boost (version 1.33).
Regenerating 1.8 Components
If you generate an existing 1.8 Component in the 1.10 IDE, the IDE prompts you to upgrade the Component to use the new 1.10 Code Generator. If you select Upgrade, hidden project files are modified to indicate the new 1.10 Code Generator has been used. Once these project files are modified, it is difficult to revert back to use the 1.8-style Code Generators for this Component. If you select Cancel, the source code for the Component is not modified. Upgrading to the new 1.10 Code Generator offers the following benefits:
- New component pattern shifts BulkIO and BurstIO implementation from code generator to base classes to ease incorporating future BulkIO-related bug fixes and enhancements.
- New code generators support use of complex properties.
- New code generators are now easily accessed from command line.
- New Java Component pattern mirrors the existing Python and C++ Component model with a generated base class and a serviceFunction in the main class.
- New logging structure is used for C++ Components.
- Allocation callbacks are available on C++ Devices.
If the main Java Component class is not regenerated, the class does not take advantage of the newly generated base class. In order for the base class to compile when building the project, the class needs to have a method added to it. If the main Java component class is regenerated, all custom code added to it is not preserved. For more information, in the REDHAWK Manual, refer to Files Generated for Java Components.