@ryanbauman ryanbauman released this Feb 24, 2017 · 16 commits to master since this release

Assets 16

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.


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.