REDHAWK Release Notes - 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 fixes were completed REDHAWK 2.0.5:
Core Framework Fixes
- 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).
IDE Fixes
- 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.
- In a diagram, Port modifications to existing Components are now displayed the next time the diagram is opened.
- 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.