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_limitsstructure Property identifiers have changed. This is areadonlyProperty reported by the GPP during a query call. The resultingsys_limitsProperty 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_implcode 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.pyanddevconfig.pyintogpp_setupscript, 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.attachis 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
createApplicationcall 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_diagutility. - 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_limitsstructure 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
loadSADFilecall in the Sandbox. - Sandbox
loadSADFileallows 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
procfunction in the Python Sandbox by updating DataConverter torh.DataConverter. - Unit tests do not deadlock on 32-bit CentOS 6.
cleanomniscript correctly determines root privileges.cleanomnionly 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. rhlauncherhas 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
createApplicationon 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.ideare 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
domainmanagerelement. - 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_allocationproperty 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
byteswaphardcoded 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_threadis threadsafe.
REDHAWK Basic Devices
- FmRdsSimulator -
nodeconfig.pyscript now modifies therh.FmRdsSimulatorprofile in-place. - RTL2832U -
nodeconfig.pyscript now modifies therh.RTL2832Uprofile in-place. - USRP and RTL - Updated
nodeconfig.pyscript to use new Sandbox APIget_simpleinstead ofget_props. - USRP_UHD -
nodeconfig.pyscript now modifies therh.USRP_UHDprofile 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.
REDHAWK