REDHAWK Release Notes - 2.0.4
The effort in REDHAWK 2.0.4 focused on:
- Adding support for the CentOS 7 operating system.
- Updating the REDHAWK IDE to require Java 8.
- Adding support for two new Core Assets, SinkSDDS and SourceSDDS, which convert between SDDS and BulkIO data formats.
- Adding messages to indicate to the user the reason why the GPP is busy.
- Adding more IDE XML validation to help users catch issues sooner when designing projects.
- Corrected issues with Redhawk-generated build scripts that prevented errors from being displayed.
- Adding ’Connect’ and ’Show Properties View’ in the Graphiti diagram context menus.
- Adding GPP label to the Domain Manager log message when deploying Components or Waveforms to enable quick identification of which GPP the Domain Manager is attempting to launch Components on.
- Improving the REDHAWK Explorer product to use the new Graphiti diagrams introduced in the REDHAWK 2.0.0 IDE.
- Improving IDE namespace support to give users an error if they have multiple resources with conflicting IDs in the SDRROOT.
- Addressing numerous bug fixes.
Core Framework API Changes
The following API changes have been made.
- GPP
sys_limits
structure Property identifiers have changed. This is areadonly
Property reported by the GPP during a query call. The resultingsys_limits
Property identifiers returned from the query call now correspond to the New ID column.
Old ID | New ID |
---|---|
current_threads |
sys_limits:current_threads |
max_threads |
sys_limits:max_threads |
current_open_files |
sys_limits:current_open_files |
max_open_files |
sys_limits:max_open_files |
Improvements
The following Core Framework and IDE improvements were completed in REDHAWK 2.0.4.
Core Framework Improvements
- Improved build support files so IDL references in an IDL project can be listed in any order.
- Improved support for Components with multiple implementations. When the local file for a secondary implementation is missing, that implementation is ignored.
- Fixed omniEvents to run on CentOS 7.
IDE Improvements
- Improved XML validation.
- Improved namespace support to display an error when multiple elements in the SDR root have the same DCE ID.
- Improved Graphiti diagram context menus by adding Connect option.
- Improved warning dialogs by adding warnings for deallocate all and New Control Panel. el6-i686
- Added a warning message for properties that have kind message that are not a struct.
Fixes
The following IDE, Core Framework, and Core Asset fixes were completed in REDHAWK 2.0.4.
Core Framework Fixes
- If the Sandbox is started when a plot is created, the plot’s initial state is set to started.
- Python SPD parser correctly exports capitalization for softpkg.
- Python Codegen can handle camel-case structure definitions.
- Exceptions in
port_impl
code are now passed to the caller instead of ignoring them. - When a call to runTest on the Application has unknown properties, it lists the unknown properties.
- In GPP, merged
create_node.py
anddevconfig.py
intogpp_setup
script, updated the install scripts to usegpp_setup
, changed the model to REDHAWK GPP, and updated GPP properties to 2.0 property kinds. - Better error is given when
redhawk.attach
is invoked with no visible Domains. - Improved error message when missing dependency is a softpkg.
- Java unit tests are disabled when the core build does not have Java enabled.
- Python Sandbox
createApplication
call includes Device assignment sequence as an argument. - Fixed PartialConfiguration error for init of properties with kindtype of both property and allocation.
- Deallocating a listener sends an EOS out of the BulkIO Port.
- If the Device Manager does not have write access to the cache directory, it logs an error instead of having a segmentation fault.
- Corrected giop:unix endPoint format in
rh_net_diag
utility. - Added the name of the missing file to the error message when parsing spd files.
- Sandbox DataSDDSSink stores the latest SRI received.
- Code generator correctly handles programming language element in the implementation element.
- SDDS Ports push SRI on new connections.
- If omniEvents is stopped, and the Domain is shutdown, a correct message is generated.
- Added namespace qualifiers for
sys_limits
structure property members in GPP. - Enhanced error handling for problems during Device registration.
- Python library does not release Applications on exit by default.
- External property overrides are allowed for
loadSADFile
call in the Sandbox. - Sandbox
loadSADFile
allows for namespaced property names. - Default values are correctly generated for sequence of structures in C++.
- Calls to
FileSystem::exists()
no longer cause the Domain Manager process to abort. - Fixed issue with GPP statistics type conversion for large numbers that resulted in occasional errors in the usage statistics.
- Spec file for namespaced Components, Devices, and Services includes complete directory paths.
- Fixed compatability issue with partial configuration during
initializeProperties
. - Missing read permissions on Component installations no longer crash the Domain Manager.
- Python FEI infrastructure matches C++ FEI infrastructure.
- Java FEI infrastructure matches C++ FEI infrastructure.
- Fixed the
proc
function in the Python Sandbox by updating DataConverter torh.DataConverter
. - Unit tests do not deadlock on 32-bit CentOS 6.
cleanomni
script correctly determines root privileges.cleanomni
only attempts to start omniEvents once if the omniEvents service startup fails.- Tests run manually (via
runtests.py
) and tests run as part of the continuous integration infrastructure use the same test environment. - Readonly property kind properties are initialized through
initializeProperties
. - DeviceManager can correctly parse Device spd files when they contain dependency elements.
- Automake warnings are not issued when compiling on CentOS 7.
- In Python
ExecutableDevice.terminate()
, wait until the entire process group has exited before checking the process status and returning. rhlauncher
has the updated REDHAWK logo.- omniEvents waits for omniNames to be ready before deploying.
- Components launch in the Sandbox with GNU debugger.
Special Resolutions
- Won’t Fix
- Core framework runtime failure if basic Components are not installed - The Sandbox requires the DataConverter Component be installed for format conversion.
- Limited IDL path search for IDL - Previous code generators did not allow for additional search paths. This has been resolved in newer releases.
- Java Devices do not deal well with a NULL IDM channel - The normal Java Device startup will handle all Null Pointer Exceptions (NPE). Developers are encouraged to use Publisher and Subscriber interfaces and not the internal
connectEventChannel()
, which will cause an NPE. - Sandbox initial configure call includes execparams - execparam and configure are both deprecated. Therefore, changing the behavior would not be beneficial because new Components are not created with these properties, and there is a chance that existing Components would be broken.
- C++ Appender prints error on stderr - This behavior is intrinsic to log4cxx. The message is sent during a reconfiguration request when an error is encountered.
- Incorrect use of daemon function in omniNames
init.d script
- This defect is part of the EPEL distributed package of omniOrb.
- Fixed By Other Issue
- Python service generator throws an exception with non-namespaced IDL interface - Fixed by REDHAWK release 1.9.
- Cannot Reproduce
- Python Device Codegen uses incorrect name in
Makefile.am
. - Multiple message out Ports in C++ causes malformed
port_impl.h
. - If more than one Application is created with the same name using
createApplication
on the Python package, the tracking of the Applications breaks.
- Python Device Codegen uses incorrect name in
- Duplicate
- Spelling error in Application error message - Duplicate of CF-1550 (Log message says “Abormal”).
- SAD validation fails when an implementation is missing - Duplicate of CF-1556 (Improved support for Components with multiple implementations. When the local file for a secondary implementation is missing, that implementation is ignored.).
IDE Fixes
- FindBy Wizards no longer allow mulitple Ports with the same name to be added.
- Fixed null pointer exception (NPE) with SAD file properties and assembly controller actual properties.
- Ports no longer can be added for Service projects with an interface that does not extend CF/PortSupplier.
- Indexer now imports BurstIO information.
- Fixed issue causing an error when deallocating a Python FEI Device.
- FindBy direct edit dialog only enables the Delete button after a Port is selected.
- Graphiti diagrams were refactored between repositories.
- Fixed NPE with SAD referencing Port names that do not exist when launching in Sandbox.
- Corrected warning message displayed when overwriting modified files.
- Property View inner tab name now always displays “Properties”.
- An error no longer occurs when invoking shutdown on Sandbox Device Manager.
- REDHAWK IDE RPM now requires necessary development packages.
- Sources in the
Makefile.am.ide
are ordered lexicographically. - Code generation no longer unsets C++ build exclusions.
- Devices launched in Sandbox are now configured during
registerDevice
. - Toolbar buttons (start/stop/release) are now enabled for local Waveform editors.
- DCD model does not allow invalid
domainmanager
element. - IDE now sends the correct properties when a Component/Device is launched in the Sandbox.
- EMF validation error now occurs if a Struct does not contain at least one simple or simple sequence property.
- Code was refactored so IDL path sources use preference.
- Fixed NPE with Waveform/Node project references to a non-existent SPD.
- Removed references to several plug-ins that are not necessary as dependencies.
- Required PyDev dependency was added for Sandbox console.
- Correct exec param properties are now used when launching in the Sandbox.
- SoftPkg elements are no longer expandable in Explorer view.
- The FEI Device wizard no longer creates the
frontend_tuner_allocation
property as a partially-configured struct. - Corrected diagram titles and tooltips.
- When generating a namespaced Waveform or Node, the .spec file now owns parent directories.
- The message property kind is only displayed for struct properties or if the property is already a message kind.
- Fixed omniORB IDL parsing errors.
- Diagram icons now match Explorer view icons.
- Dependencies were added to the IDE RPM for necessary GTK libraries.
- Fixed display issues on CentOS 7.
- Waveforms with more than one declared namespace launch in the IDE Sandbox.
- Launching a Device in the Device Chalkboard with the Device Chalkboard open no longer causes an error.
- The IDE now uses the stable release of Nebula (1.0.0).
- The IDE now uses the latest PyDev update (4.5.5) for Eclipse Mars.
- The IDE’s NeXtMidas version was locked to 3.6.
Core Asset Fixes
REDHAWK Basic Components
- FileReader - bluefile
byteswap
hardcoded to false. - Sourcesocket - Properly handles FIN in client mode when server closes connection.
- SourceVITA49 - Expanded unit tests.
- SourceVITA49 - Corrected to assume payload is big endian if not specified.
- SourceVITA49 - Fixed so
destroy_rx_thread
is threadsafe.
REDHAWK Basic Devices
- FmRdsSimulator -
nodeconfig.py
script now modifies therh.FmRdsSimulator
profile in-place. - RTL2832U -
nodeconfig.py
script now modifies therh.RTL2832U
profile in-place. - USRP and RTL - Updated
nodeconfig.py
script to use new Sandbox APIget_simple
instead ofget_props
. - USRP_UHD -
nodeconfig.py
script now modifies therh.USRP_UHD
profile in-place.
Documentation Improvements/Fixes
- Updated the dependency list for installing from source on CentOS 7.
- Corrected information about creating REDHAWK Projects in the IDE.
- Added information about new warning dialog displayed when deallocate all is selected.
- Updated graphics to display Monitor Ports on context menu for resources in Graphiti diagrams.
- Updated graphics to display Connect in Graphiti diagram context menus.
- Updated graphics displaying Show Properties in Graphiti diagram context menus.
- Updated REDHAWK installation instructions.
- Updated image on REDHAWK home screen.
- Removed incorrect/obsolete upgrade instructions.
- Updated steps in Allocating a FrontEnd Tuner procedure.
- Modified Configuring omniORB heading to Configuring JacORB for the IDE.
- Removed Installing RH on Ubuntu appendix.
- Removed invalid IDE dependencies.
- Added information about SourceSDDS and SinkSDDS.
- Updated Figure 17.17 Running Waveform in the Chalkboard with graphiti diagram.