REDHAWK Release Notes, Version 2.0.5
The effort in REDHAWK 2.0.5 focused on:
- Maintaining the correct time stamp when pushing data from the Sandbox DataSource.
- Improving a Component’s response to messages irrespective of whether or not the Component is started or stopped.
- Improving FileSink support for framed data and timecode with BLUE file output.
- Improving the handling of missing event message fields in C++ and Python.
- Ensuring external Port names are recognized.
- Addressing numerous bug fixes.
Fixes
The following IDE and Core Framework fixes were completed in REDHAWK 2.0.5.
Release notes for Core Assets are available on Github (https://github.com/RedhawkSDR/) in each Core Asset repository.
Core Framework Fixes
The following Core Framework bug fixes were completed in REDHAWK 2.0.5.
- Component start order is now honored when calling the Sandbox’s loadSADFile method.
- Reduced the number of messages indicating a bad connection when a remote Component dies and a connection to it exists.
- The behavior for mismatch between the message structure being received and the expected structure has been harmonized across C++, Python, and Java.
- If DomainManager is not compiled with persistence enabled, persistence flags are now ignored.
- Removed sending SIGQUIT during the terminate sequence for Components.
- Connection issues for BulkIO Ports are logged as errors, and repeating messages will be suppressed once a threshold has been achieved.
- Python BulkIO Ports now report error messages during pushPacket and pushSRI operations.
- For Octave Components that add shared libraries, the library’s implementation reference is correctly referenced when generating a Component.
- Multi-out Ports issue an EOS when listeners are deallocated.
- Added default resolution of SDRROOT target installation to be /var/redhawk/sdr if a user’s shell environment configuration is incomplete.
- log4j time formats are processed correctly for resources using Python logging.
- Removed obsolete comments that no longer applied.
- The Domain’s ConnectionManager will remove connections from its pending list if connection deferral is not allowed.
- When specifying a user when daemonizing nodeBooter, all the user’s groups (primary and secondary) are associated with the process. Also, groups can now be defined as comma-separated names on the group switch when starting nodeBooter.
- On startup, calls to the configure function on the Component or Device only occur if there is at least one Property to update.
- C++ BulkIO output Ports now report the correct bits per second in statistics in all cases.
- The redhawk module in Python has a complete replication of the CORBA interface for the remote object at a base level (not just on the ref member).
- When DeviceManager is launched and DomainManager is not available and persistence is enabled, Name Service is populated with the DeviceManager, Device, and Service information.
- Added the ability to specify a wait time for client calls from the DomainManager to remote servants when an underlying mutex is locked and restricts other activities using the DomainManager.
- Java Components using org.ossie.events.Subscriber class can register a callback interface when new event messages arrive.
- FileSink sets the subsize field in BLUE file headers to match the frame size when the input stream is two-dimensional.
- FileSink formats framed data correctly with BLUE file output.
- The Sandbox’s BlueFileReader can handle two-dimensional (framed) data in the form of type 2000 files.
- The Sandbox’s DataSink can handle framed data of type ’char’.
- The bluefile module properly chunks framed two-dimensional (framed/type 2000) data. It also properly handles complex data when it is two-dimensional.
- FileSink now uses the timestamp of the first BulkIO packet to set the header timecode for BLUE file output.
- At the end of BLUE files, FileSource would sometimes send a zero-length packet with no EOS and a zero-length packet with EOS set. The zero-length packet with no EOS was removed.
- Eclipse plotting widgets can be started from the Python Sandbox.
- The default implementation for retrieve_records, retrieve_records_by_date, and retrieve_records_from_date on the logging interface for C++ Components and Devices no longer segfaults when executed.
- Codegen testing now evaluates all unit tests for namespaced Components.
- Namespaced Waveforms can now be launched in the Sandbox using the fully-qualified namespaced name.
- If a Component was shutdown while pushing data, it would occasionally deadlock. This race condition was removed.
- When pushing data, the Sandbox DataSource advances the time stamp according to the initial time and the number of samples sent.
- If an FEI Device contains input BulkIO Ports, releasing a tuner does not cause an error message.
- When a BulkIO input stream is disabled, packets for that stream with EOS set are handled and reported correctly.
- Components in Java, C++, and Python respond to messages irrespective of whether or not the Component is started or stopped.
- Conversions of header keywords between BLUE file and REDHAWK SRI are handled properly.
- Deallocation of an FEI controlling allocation ID cannot be done using a listener allocation structure.
- The SRI changed status is provided for the first packet received using the stream API.
- An application’s getPortSet() method uses the external Port name provided in its SAD file.
- Empty directories are not created in the GPP’s cache directory when log4py FileAppender is configured with the absolute file path.
- When a BulkIO input stream receives an EOS, the input Port’s getCurrentStream() now always returns the stream once to give the caller a chance to check for EOS.
- Fixed possible Python FEI Device deadlock issue when responding to requests (for example, getTunerEnable, allocateCapacity).
Special Resolutions
The following previously reported Known Issues have been closed in REDHAWK 2.0.5 with the following resolutions:
- Won’t Fix
- GPP Component output log feature is fragile - This issue is OBE. It relates to the Python version of the 1.8 GPP, which is no longer supported as of the release of the REDHAWK 2.0 GPP, which is written in C++.
- Non_existent yielding false negatives - This issue is limited to tests, and no tests have failed because of a false positive, so this should be addressed only if tests are not passing.
- Populate_deviceAddedEvent and _serviceAddedEvent functions in the Domain class of the REDHAWK core package - This issue is OBE with the release of REDHAWK 2.0 as Device and Service members are generated from registered DeviceManagers that manage the life cycle of Devices and Services.
- sb.loadSADFile does not allow multiple instances - Not allowing multiple instances of a Waveform is by design. The issue has been converted to a New Feature requirement and its resolution is deferred to a future release.
IDE Fixes
The following IDE bug fixes were completed in REDHAWK 2.0.5.
- In a diagram, Port modifications to existing Components are now displayed the next time the diagram is opened.
- Reworked how the IDE diagrams add actions to toolbars and menus, which resolves the handler conflict errors that were thrown when multiple diagrams were opened concurrently.
- When marking Ports as external in a SAD diagram, if external Ports are created with the same name, the names are suffixed to make them unique.
- A domain Waveform opened with the Chalkboard editor now is in sync to reflect the same status changes (for example, start and stop) in the Explorer view.
- When creating FEI Devices, the pages of the New Project wizard now include the setup code generation page for C++ and Python.
- The x-axis on plots adjusts to changes in the CHAN_RF and COL_RF Properties in SRI.
- The PROFILE_NAME argument is now correct for resources launched in the Sandbox.
- In the Properties view for an FEI tuner, the title was adjusted to be the tuner ID, and the tab name was changed to "Properties".
- The naming context names that the IDE uses in the Sandbox now are the same as the core framework at runtime.
- Newly created projects are properly configured so that projects now report warnings and errors in the Problems view for Redhawk XML files.
- The status for an object in a domain is now updated when its profile (XML) is loaded.
- The CORBA name browser view now displays names that contain periods.
- The Sandbox diagrams always show the correct state for a Component or Device that was launched while the diagram is open.
- Corrected code that was being run in an incorrect thread inside the IDE.
- Namespaced Java Components in the user’s workspace can now be launched in the Sandbox.
- The logging menu is not shown for Waveforms.
- Fixed an NPE in the SAD editor that occurred when an external Port in the SAD XML referenced a non-existent Component instantiation.
- Fixed an NPE that occurred if a Waveform with an event channel connection was launched in the Sandbox.
- Fixed an NPE when generating code for a project that was caused by a corrupt configuration file.
- Fixed issue causing an internal IDE error when generating code for an Octave Component and Octave was not installed.
- An internal IDE model detail is no longer shown when browsing a componentInstantiation.
- The same Component can now be launched from both the workspace and the SDRROOT simultaneously in a diagram.
- Adding a FrontEnd Uses Device to a Waveform no longer causes an error when saving the Waveform.
Special Resolutions
The following previously reported Known Issues have been closed in REDHAWK 2.0.5 with the following resolutions:
- Cannot Reproduce
- Python syntax highlighting is sometimes incorrectly configured when the IDE launches.
- Cannot launch namespaced Component in the IDE Python Sandbox.
- ’Tail Log’ disabled in the diagram for domain resources.
- Duplicate
- Unable to launch same-named Component from both workspace and SDRROOT - Duplicate of Chalkboard diagram unable to launch the same Component from workspace and SDRROOT.
Documentation Improvements/Fixes
The following documentation improvements/fixes were completed in REDHAWK 2.0.5.
- Added documentation to explain the role of the Property kinds and how to modify/use them.
- Added pygst dependency to the installation instructions for CentOS 7.
- Updated figure of Properties View of an allocated tuner in Controlling a Tuned Receiver.
- Updated Further Reading section of HTML pages to reflect the current documentation structure and supported REDHAWK products.
- Added BurstIO information in the Connections chapter of the User Manual.
- Revised information about installing log4cxx dependency for CentOS 7 in Building and Installing REDHAWK from Source.
- Removed log4cxx dependency for CentOS 6 in External Dependencies appendix.
- On the Downloads page, updated SCA Explorer text to REDHAWK Explorer.
- On the Downloads page, updated links to reflect currently supported REDHAWK products.

REDHAWK Documentation is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.