Skip to content

Releases: RedhawkSDR/redhawk

REDHAWK 2.2.5

30 Dec 20:19
2.2.5
e2569d8
Compare
Choose a tag to compare

The effort in REDHAWK 2.2.5 focused on:

  • Resolving an issue that occurred when creating an event channel with an empty string name. In this case, an exception is now thrown and documentation was added explaining valid content for event channel names.

Fixes

The following fixes were completed in REDHAWK 2.2.5:

Core Framework Fixes

  • Corrected misspellings in loghelpers.cpp.
  • The generated SAD xml excludes components such as StreamSource, StreamSink, etc.

IDE Fixes

  • Consolidated graphical and graphical-runtime tests to both use the installed REDHAWK components.
  • Removed synchronous call when closing the Signal Related Information (SRI) view because a port disappeared.

REDHAWK 2.2.4

13 Sep 16:49
2.2.4
3c6aab2
Compare
Choose a tag to compare

The effort in REDHAWK 2.2.4 focused on:

  • Enabling the SCA File Manager to return hidden files when requesting a directory listing from the FileSystem or theFileManager.
  • Improving support when adding RFInfo, GPS, and NavData ports to a component. The generated implementation now supports the delegation pattern with the component rather than empty methods that require developer implementations.
  • Documenting how to overload BulkIO ports to implement out-of-band communications (for example, between components implemented on FPGA). Developer documentation is available at https://github.com/RedhawkSDR/core-framework/tree/2.2.4/docs/custom-transport.
  • Updating SoundSink to detect and use the correct version of gstreamer to enableSoundSink to work on both CentOS 6 and 7; and updating the External Dependencies in the REDHAWK Manual to include the appropriate gstreamerdependencies.
  • Correcting the blocking behavior when using an infinite queue size.
  • Improving the shared memory subsystem to reduce total memory use and provide additional controls to system deployers.
    • Modified behavior such that when BulkIO connections use shared memory for the transport, virtual memory mappings are reused across input connections to reduce the growth of the process' memory space.
    • Changed the default behavior of the shared memory allocator to increase the reuse of shared memory and reduce the growth of heap files.
    • Added runtime metrics to the shared memory allocator for observing and tuning the usage of shared memory on a system. Shared memory allocator metrics are disabled by default. Developer documentation is available at https://github.com/RedhawkSDR/core-framework/tree/2.2.4/docs/shared-memory/metrics.md.
    • Added configurable settings to the shared memory allocator that are managed via environment variables. These options allow system deployers to tune the shared memory allocator for higher concurrency or lower memory footprint, depending on the expected usage. Developer documentation is available at https://github.com/RedhawkSDR/core-framework/tree/2.2.4/shared-memory/tuning.md.
  • Updating cleanes to clean the appropriate log location based on the version of omniEvents.
  • Resolving issue with Python sandbox plotting of complex data.
  • Modifying how the Device Manager deploys SharedLibrary devices. It no longer attempts to launch SharedLibrary devices as if they are Executable devices. An error message is displayed and the device is not launched.
  • Updating the REDHAWK SCA Specification and the REDHAWK ICD Specification with the application launch sequence that includes initializeProperties.
  • Fixing a condition in which C++ BulkIO input ports could cause a crash during frequent SRI updates.
  • Modifying behavior in EventChannelManager registerConsumer and registerPubslisher methods. If the event channel in the registration request does not exist, the event channel is created to satisfy the request.
  • Resolving issue with Python components that use both the generic and specific message callbacks. These components no longer have values overwritten in the generic message callback invocation. When associating both a specific message callback and a generic message callback to a message input port, the generic message callback is populated with an id/value pair, where the value is of type any.
  • Adding Boost header includes to some files to allow building with later versions of Boost.
  • Modifying the code generators to only allow persona devices to be created as SharedLibrary (not Executable). When attempting to generate code for a persona device with its xml code type set to Executable, the code generators display an error.

Fixes

The following fixes were completed in REDHAWK 2.2.4:

Core Framework Fixes

  • Updated bluefile.py to the latest version.
  • Updated BulkIO unit tests by replacing DataSource and DataSink with StreamSource and StreamSink except in cases where DataSource or DataSink itself was being tested. In such cases, the deprecation warnings were silenced.
  • NodeBooter bash completion is installed in the Runtime install whereas previously, it was installed in the Devel rpm.
  • Fixed issue when configuring properties and assigning non-boolean values in Java. The value defaults to false rather than throwing an exception.
  • Fixed issue when using the same stream ID for multiple back-to-back streams into a single port; the SRI no longer gets corrupted.
  • Fixed an issue with multi-domain allocations where the AllocationManager would attempt to allocate all of the original requests on subsequent remote domains, as opposed to only the requests that have not been satisfied.
  • Resolved event channel connection issues when the Domain Manager and omniEvents reside on different hosts and the channel already exists.
  • Fixed issue with Python stream API to properly handle back-to-back streams.
  • Resolved synchronization issues for FrontendTunerDevice's allocateCapacity and deallocateCapacity.

IDE Fixes

  • Fixed the Event Channel processing to use persistent server connections.

Documentation Fixes

  • Corrected parameter definition for sandbox Valgrind in Working with Components, Devices, and Services section of the REDHAWK Manual.
  • Added rh.MSDD to the Basic Devices Section of the Core Assets release notes page and reordered the waveform information.

Special Resolution

The following previously reported Known Issues have been closed in REDHAWK 2.2.4 with the following resolutions:

Core Framework Special Resolutions

  • testExecute in GPP can fail depending on num cpus - Cannot Reproduce

Documentation Special Resolutions

  • Incorrect section numbers and page numbers in REDHAWK SCA Specification and ICD pdfs - Won't Fix - This issue was caused by the unoconv PDF conversion tool. The conversion tool is no longer being used.

REDHAWK 2.2.3

17 Jun 17:25
Compare
Choose a tag to compare

The effort in REDHAWK 2.2.3 focused on:

  • Adding a note in the REDHAWK Manual about compiling REDHAWK with newer versions of GCC that default to the C++11 standard.
  • Adding code to DomainEventReader to recognize and handle object-removed events.
  • Adding the Querying and Configuring Components and Devices section in the REDHAWK Manual to include instructions on how to interact with properties from programs in C++, Java, or Python.
  • Resolving a missing symbol issue for C++ bulkio::SampleDataBlock::copy() methods.
  • Improving how gpp_setup responds to the host processor. If the processor cannot be determined, user input is requested.
    Adding the section, Setting Host Architecture/Computer Processor Name, to the Troubleshooting appendix of the REDHAWK Manual.
  • Correcting the Domain Manager's behavior when a DCD has an improperly-defined connection (for example, an incorrect port name) between a device and a service. The Domain Manager now correctly completes all other valid connections defined in the DCD.
  • Correcting the Device Manager's behavior to successfully reconnect with the Domain Manager in the event that the Domain Manager has to be reset.
  • Modifying the getPacket function in Java to limit logging, which allows garbage collection to keep up when the argument in getPacket is set to zero.
  • Resolving the following issues related to shared memory transport:
  • Rapidly stopping and restarting components with BulkIO shared memory connections could lead to crashes or aborts.
  • Incorrect display of owner PID for shared memory heaps in redhawk-shminfo.
  • Resolving issue within the ProcessThread base class in C++ to take into account an updated delay value.
  • Providing the following updates related to generating a component using createOctaveComponent:
  • The contents of the SCD file are generated by inspecting the ports to list the interfaces.
  • The contents of the SoftPkg ID is based on a DCE:<uuid> instead of the m-file.
  • Correcting behavior when an allocation of an FEI device fails. The frontend_tuner_status is not updated with the failed allocation's values.

Improvements

The following improvements were added in REDHAWK 2.2.3:

Documentation Improvements

  • Added documentation regarding object creation and garbage collection in Java components' and devices' serviceFunction.

Fixes

The following fixes were completed in REDHAWK 2.2.3:

Core Framework Fixes

  • Resolved issue ensuring --useloglib tab complete now works with nodeBooter.
  • Added a helpful error message that is displayed when Naming Service is not running.
  • Provided the correct commit hash and build timestamp in RPM header.
  • Updated test to override methods in unittest.TestProgram, for Python versions < 2.7, to skip tests related to Non-Uniform Memory Access (NUMA) when the host does not support NUMA.
  • Lowered NIC thresholds for Core Framework (CF) regression testing.
  • Changed setup and teardown code to prepare the state of /dev/shm to allow the test to operate properly.
  • Increased wait time in testBusyLoadAvg test to allow CPU load average to settle.
  • Updated code to properly identify CPUs on virtual machines.
  • Fixed failures with unit test test_04_ApplicationFactory.py test_ExecParamToConstruct_py.
  • Fixed intermittent failures for unit test test_01_DeviceManager.py test_DeviceBadOverload.
  • Resolved issue for GPP to correctly identify CPU affinity for network interfaces that support RX/TX queues.
  • Changed wait conditions in the test script so that test_01_DeviceManager.py DevCppPyJavaDeps no longer fails intermittently.
  • When the Python sandbox exits and it has a reference to a Device Manager, the deactivation of the object no longer raises an exception if the object no longer exists.
  • Updated test_13_RedhawkModule.py test_API_remap to account for new versions of omniORBpy.
  • Added better regression testing checks to deal with slower CI infrastructure.
  • Added device checks throughout Core Framework tests to reduce false errors.
  • Added smarter check to test_MessageMarshalJava to support slower continuous integration.
  • When a property is configured, if the new value is the same as the old value, the property change callback in the component/device is not triggered.
  • Using getPacket(0) no longer leads to large memory growth in Java components.

IDE Fixes

  • Corrected a resource leak in the command-line plotter.
  • Addressed code quality issues.
  • Corrected an issue with the JavaFileFileImplTest.close() unit test.
  • Fixed an error in configuring dataBit plots.
  • Improved the robustness of Domain Manager refresh in the Explorer view so that it is less likely to require a manual refresh when the Domain Manager is unexpectedly terminated and restarted.
  • Added a very short duration cache of metadata for SCA filesystem objects to reduce network traffic.
  • Corrected the FrontEndDataProvider to now only listen to the data provider preference to enable/disable the FrontEnd tuners shown in the REDHAWK Explorer view.

Documentation Fixes

  • Modified a reference to Allocating a FrontEnd Tuner.
  • Corrected capitalization on the REDHAWK Core Assets page.
  • Corrected an incomplete sentence in the Manually Including External Libraries section of the REDHAWK Manual.
  • Updated references to the node definition file to use dcd.xmlrather than DCD.
  • Fixed typos in the REDHAWK Manual.
  • Improved information in the Message Producer and Message Consumer sections of the REDHAWK Manual.
  • Revised RF Allocation information in the Distributed Computing and RF Devices section of the REDHAWK Manual.
  • Corrected capitalization of terms and references to interfaces in the REDHAWK Manual.
  • Corrected the term "Linux domain sockets" with "Unix domain sockets" in the Getting Started with REDHAWK Guide and in the REDHAWK Manual.
  • Corrected capitalization of the acronyms, "TCP" and "GIOP" in the Optimization appendix.
  • Removed bash from code blocks in the Logging Configuration Plugin appendix.
  • Updated the documentation repository releases file to enable the manuals to display in release version during development.
  • Fixed capitalization inconsistencies.
  • Corrected inconsistency of terms in the REDHAWK Manual.
  • Removed bash from code blocks in the Configuring Logger Settings and Adjusting Logging at Runtime sections of the REDHAWK Manual.
  • Updated the New Domain Manager dialog and revised text in Connecting to a Running Domain section.
  • Removed references to 1.8 version of REDHAWK in the External Dependencies appendix.
  • Fixed improper sub-section headings in the REDHAWK Manual.
  • Fixed a missing reference and corrected an example class name in the Writing Your Own Event Consumer section of the REDHAWK Manual.
  • Removed references to 32-bit OS versions that are no longer supported.
  • Updated the REDHAWK Manual to include introductory sentences after section headings and before tables to describe the information being presented.
  • Updated REDHAWK runtime dependency information to include bash-completion, which enables tab completion when running the nodeBooter command.
  • Updated the GitHub link on the manuals website pages.

Special Resolution

The following previously reported Known Issues have been closed in REDHAWK 2.2.3 with the following resolutions:

IDE Special Resolutions

REDHAWK 2.2.2

15 Mar 16:32
Compare
Choose a tag to compare

The effort in REDHAWK 2.2.2 focused on:

  • Updating the redhawk.attach() call to not cache domains anymore. Instead, the last connected CORBA ORB is cached and subsequent calls make sure the ORB is still valid.
  • Fixing refresh and NPE issues in the REDHAWK Explorer view. Event channels are now properly connected on Domain Manager restarts. ClientMessageReceptor threads no longer grow unbounded.

Fixes

The following fixes were completed in REDHAWK 2.2.2:

Core Framework Fixes

  • Rebinded domain event channels to their domain context name and not their fully qualified name used in the Event Service.
  • Restored ODM and IDM channels when the persistence database file is present.
  • Resolved issue with creating IDM_Channel when DeviceManager does not unregister properly due to failed execution.

Documentation Fixes

  • Removed references to 32-bit OS versions that are no longer supported.

Special Resolution

The following previously reported Known Issues have been closed in REDHAWK 2.2.2 with the following resolutions:

Core Framework Special Resolutions

  • GPP NIC affinity blacklist test is using the wrong CPU list - Cannot Reproduce - This bug could not be reproduced against REDHAWK 2.2.2.
  • test_GPP.py testForceOverride can't grab 2nd socket in vm with one socket - Won't fix - This behavior only affects the REDHAWK 2.0.x series.

REDHAWK 2.2.1

15 Mar 13:39
Compare
Choose a tag to compare

The effort in REDHAWK 2.2.1 focused on:

  • Improving how the MessageSupplier port's sendMessages() method handles bulk message failures when the size exceeds the maximum CORBA transfer size. On failure, messages are now sent individually.
  • Fixing the Octet output format for the bluefile FileSink.
  • Changing the output for the "number of samples pushed" when data for a BulkIO stream is generated spanning multiple timestamps. The output changed from being the "number of samples spanning the timestamp packets" to being the "number of samples that was requested".
  • Resolving an issue for BulkIO input ports to hold multiple back-to-back streams with the same stream ID in a pending, independent state.
  • Ensuring that the Python Publisher and Subscriber classes disconnect from their event channels before unregistering from the Event Channel Manager.
  • Ensuring that calling stop on a component no longer causes an exception from a timeout if the NOOP sleep time in C++ components is too long.
  • Enabling waveforms to successfully run when the useScreen property is set to true on the GPP in a Device Manager.
  • Correctly resolving @@@WAVEFORM.INSTANCE@@@ and @@@DEVICE_MANAGER.NAME@@@ in log files for components and devices, respectively.
  • Fixing an issue with loadSADFile and generateSADXML. When using loadSADFile, all connections in the XML file are appropriately created in the Python sandbox, and when using generateSADXML, connections in the sandbox are included in the resulting XML.
  • Preserving EOS and sriChanged flags on a per-stream basis when a BulkIO input port queue is flushed. As a result, when a queue flush occurs, any stream that has an EOS in the queue will receive an empty packet with EOS set.
  • Preventing duplicate service name registration in the REDHAWK domain. When a Device Manager attempts to register a service with a name that is already in use, the Domain Manager throws an exception and the Device Manager terminates the service's process.
  • Generating a unique identifier for NIC allocations from host-collocated components in a waveform.
  • Supporting NIC allocations for host-collocated components in a waveform.
  • Fixing a memory leak in BulkIO input ports when using getPacket() to fetch data.
  • Fixing an issue to allow files to be truncated when component host logging is enabled on the GPP.
  • Enabling persistence at runtime (persistence is compiled into the Core Framework by default) by providing a backend database to store the configuration when launching a Domain Manager using the nodeBooter argument --dburl.
    The persistence options to nodeBooter are handled more strictly:
    • If --dburl is given when launching a Domain Manager, and the database file location cannot be accessed, an error is reported and the Domain Manager is not launched.
    • If --dburl is given when launching only a Device Manager, an error is reported and the Device Manager is not launched.
    • The --nopersist argument to nodeBooter is deprecated and has no effect.
  • Enabling Non-Uniform Memory Access (NUMA) affinity processing by default in the GPP. Prior releases required a source code rebuild to enable this feature.
  • Resolving an issue to allow for the use of a connection ID in each control port's getter methods, FrontEnd Interfaces, or custom IDL when a value is being returned.
  • Resolving an issue with increased application launch times identified during endurance testing.
  • Correcting the handling of shared library SoftPkg dependencies for loadable devices to properly add Java and Python dependencies to the environment prior to running components.

Fixes

The following fixes were completed in REDHAWK 2.2.1:

Core Framework Fixes

  • Fixed a code generator's issue involving Python and Java component implementations with numeric values specified as hexadecimal numbers in the component's properties file (prf.xml).
  • When a component running in the Python sandbox crashes, if it allocated any shared memory heap (/dev/shm), it is cleaned up by the sandbox.
  • Improved comments describing the GPSInfo data structure.
  • The attribute, _instanceName, for Device Managers shown in the Python sandbox resolves correctly.
  • Updated the GPP to check if the Non-Uniform Memory Access (NUMA) library is supported by the running host before making NUMA affinity requests.
  • Fixed issue to allow command-line properties with empty string values to be passed into the initializeProperties method.
  • Resolved unhandled exceptions that occur when a component process exits or fails during registration with the Domain Manager. Resolved memory loss issues when components register with the Domain Manager.
  • Fixed issue to handle all exceptions that can occur between a registering component and the Domain Manager.
  • BulkIO shared memory connections detect when the input side terminates unexpectedly without disconnecting, avoiding an error state in which the output side becomes unresponsive and consumes an entire CPU.
  • When quitting a Python session after attaching to a REDHAWK domain, the CORBA ORB will be shutdown.
  • Fixed issue so when using ulimit -u before starting the GPP, the GPP properly interprets the thread limits as either a number or the string 'unlimited'.
  • Event channels created through the event channel logging appender (RH_LogEventAppender) register with the Event Channel Manager if available.
  • Unregistering a property change listener no longer causes a race condition to occur.
  • Matched the Python API to the C++ API in FEI, and added an optional connection ID to the output FEI control port.
  • Fixed intermittent test failures due to low available memory in container.
  • Fixed intermittent test failures due to a test occurring before the Device Manager terminates.
  • Fixed application metrics test intermittent failure.

IDE Fixes

  • Resolved issue so data from BulkIO dataOctet ports is now plotted correctly.
  • Improved the efficiency of the REDHAWK Explorer view's auto-refresh.
  • Improved the efficiency of refreshing event channels in the REDHAWK Explorer view.
  • Corrected an issue so event channel information for a domain is appropriately retrieved.
  • Resolved issue to ensure CORBA objects used by the IDE's models are always released.
  • Corrected an NPE that may occur while releasing a resource in the sandbox.
  • Improved UI responsiveness for large domains.
  • Corrected the icons for ports and connections in the Port Monitor view.
  • Updated the default port type when creating an FEI device to now be dataShort.
  • Resolved an issue to prevent a possible NPE when interacting with context menus on ports.
  • Addressed a code quality issue regarding unused project natures.
  • Addressed a code quality issue to correct errors in xcore model files.
  • Addressed a code quality issue to correct the use of deprecated BulkIO classes.
  • Corrected a concurrency issue that occurred while accessing XML profiles.
  • Corrected a graphical issue so the text for a highlighted selection is displayed when selecting a new log level in the SAD editor.
  • Corrected issues with the workflow for connecting to a new Domain Manager.
  • Corrected an issue that prevented launching devices with a SoftPkg dependency from context menus.
  • Ensured that two services cannot be registered with the same name in the sandbox.
  • Waveforms with a componentinstantation ID that does not match the usagename now launch properly in the IDE sandbox.

Documentation Fixes

  • Updated the format of headings in the REDHAWK Manual.
  • Updated the REDHAWK ICD to indicate that dataChar is deprecated and dataOctet should be used in favor of dataChar.
  • Added an example using the connectionId argument when making sandbox connections.
  • Updated glossary links to display the first time glossary terms are displayed on a page. Acronym terms and the corresponding acronym were updated to display the first time the terms are displayed on a page. After this first occurrence, only acronyms are displayed.
  • All images in the manual now have a caption displayed under the image.
  • Added GPS interface information to the FrontEnd Interfaces appendix.
  • Added NavData interface information to the FrontEnd Interfaces appendix.
  • Added RFInfo interface information to the FrontEnd Interfaces appendix.
  • In Optimization -> Configuring omniORB, fixed a typo that referenced IORs.
  • In Frontend Interfaces -> Types of Tuners -> CHANNELIZER Tuner, fixed a typo that referenced DDC.
  • Updated the cleanomni script to include CentOS 7 information, and rearranged the omni information in the Troubleshooting appendix .
  • In Troubleshooting -> Setting Omni Log Levels, updated the omniORB User's Guide links for CentOS 7.
  • In the Logging Configuration Plugin section, fixed a typo that referenced --useloglib.
  • Updated code blocks to include a pinned "Copy to clipboard" icon on the right side.
  • Updated tables in the manual to auto adjust in size so the contents wraps correctly within the cells.
  • Removed UHD dependencies from those provided in REDHAWK and added them to the External Dependencies appendix.
  • In Managing and Defining Properties, fixed a typo in the utctime description.
  • In the Waveform Editor -> Components Tab section, removed the reference to Component ID and modified the text to match the new Components Tab image.
  • In the Waveform Editor and in the Distributed Computing and RF Devices sections, updated missing and incorrect links.
  • In the Connecting to a Running Domain section, fixed minor typographical errors.
  • In the REDHAWK ICD, corrected section numbers.
  • In the REDHAWK ICD and in the SCA Specification, fixed minor typographical errors in the Logging Description section.
  • In the Logging Within a Resource section, fixed minor typographical errors.
  • Changed the "Documentation" button for the website and the manuals t...
Read more

REDHAWK 2.2.0

07 Sep 21:31
Compare
Choose a tag to compare

REDHAWK Release Notes, Version 2.2.0

The REDHAWK 2.2.0 release is a culmination of all the 2.1.x beta releases into the next Long Term Supported (LTS) product release of REDHAWK.

In summary, REDHAWK 2.2.0 focused on:

  • Adding support for Components to be deployed on a specific GPP, and conversely allowing the GPP to restrict deployments through a matching set of id/value pairs. These id/value pairs are defined in the Software Assembly Descriptor and Device Configuration Definition files respectively. Users may refer to this feature as the "special snowflake" deployment Property.
  • Adding the API for a new type of tuner, a scanning Device.
  • Shared address space Components: Significant enhancement of Component model and BulkIO to support high performance I/O. Developer documentation is available at https://github.com/RedhawkSDR/core-framework/tree/develop-2.2/docs/shared-address.
  • Adding support for a new type of Property, utctime, extending the list that includes types such as short or string. This timestamp Property is used in PropertyChangeEvents and can be queried from Components/Devices with the id QUERY_TIMESTAMP, which is useful when synchronizing the state of the system. utctime can be used by Component/Device developers as an additional type of Property.
  • Adding cacheDirectory and workingDirectory Properties to the GPP. These properties provide the deployer with control over where Components are stored (cacheDirectory) and the directory from which Components are executed (workingDirectory).
  • Redesigning the IDE's Event Viewer to improve the ability to monitor event channels.
  • Adding functionality for capacity to be reserved for an entire host collocation on the SAD file. The reservation is a capacity floor for the Components in the host collocation, where the amount of capacity utilized by the aggregate set of Components is this reservation or actual, whichever is higher. This reservation is allocated against the target GPP running this Application, allowing the GPP to verify that the request can be satisfied, reducing the likelihood of over-subscription.
  • Waveform Metrics support: Application objects now contain a "metrics" function that returns GPP usage metrics for individual Components as well as overall for the Application. Metrics are viewable in the Properties view of the IDE.
  • Adding support for DCD files to have a startorder attribute, which functions similarly to the SAD file's startorder. On startup, "start" is automatically called on Devices and Services (when possible), and on shutdown, reverse-order "stop" is called. The IDE's tooling for DCD files has been updated to display and edit startorder.
  • Adding snapshot capability of network data and performing SDDS packet analysis on the captured data.
  • Ending support of Command-line interactive mode (-i) on Components, Services, and Devices. Terminal prompt interactions should be through the Python Sandbox.
  • Improving Python tooling to help manage REDHAWK systems. For example, these improvements include more intuitive event monitoring as well as new EventChannelManager, AllocationManager, and ConnectionManager helpers.
  • Adding functionality to allow Components that have a usesdevice dependency to now be launched on the same host (Device Manager/Node) as the Device satisfying the usesdevice requirement. This functionality is provided through an extension of the componentplacement hostcollocation.
  • Improving recovery of a REDHAWK Domain after a catastrophic failure. The Device Manager reboots all associated Devices/Services when it detects a reset Domain Manager after a catastrophic failure in the Domain Manager. This reboot only happens if (1) persistence is enabled and (2) the name service log, event service log, and persistence database are emptied.
  • Adding functionality within the code generators so they create C++, Java, or Python constants for enumerated values defined in the PRF.
  • Adding support for debugger options in the Python sandbox for C++ (Valgrind or gdb), Python (pdb), or Java (jdb) Components, Services, or Devices.
  • Adding scripts and configuration files that allow REDHAWK core services to run as system services. In addition to these services, integrators can define REDHAWK waveforms that are deployed during the system boot process.
  • Adding the Components tab to the Waveform editor in the IDE to allow editing of Component instantiation details, including logging configuration. This information will be used to resolve the LOGGING_CONFIG_URI parameter during Component deployment.
  • Improving the New Project Wizard to warn users if the project location selected already contains files that will become part of the project. Increase user awareness of files that may be moved, deleted, or packaged with a project.
  • Updating the IDE to use the latest available Eclipse tooling, Eclipse Neon. For more information about Eclipse Neon, refer to http://www.eclipse.org/neon/noteworthy.
  • Adding a Libraries chapter in the REDHAWK Manual to explain how to use shared libraries.
  • Documenting available affinity processing directives when deploying Devices, Services, and Components.
  • Extending the tool, rh_net_diag, to provide read/write/execute permissions checks on directories important for running a REDHAWK system.
  • Creating a new MSDD device released with bug fixes and enhancements and regenerated for REDHAWK 2.1.
  • Changing the default logging directory for omniEvents service to reside in /var/log/omniEvents.
  • Adding support for the REDHAWK Core Framework, IDE, assets, and new REDHAWK projects to now compile against and run on Java 8.
  • Improving nodeBooter so it does not deploy if --user or --group are set while --daemon is not, and if the command-line arguments to nodeBooter are malformed, deployment fails.
  • Changing FrontEnd Interfaces (FEI) property definitions:
  • For devices, the FRONTEND::tuner_allocation and FRONTEND::listener_allocation allocation properties are now writeonly instead of readwrite. Because the properties are now created as writeonly, they can no longer be queried. This change was made to prevent confusion with the actual state of the FrontEnd device, which is reported by the FRONTEND::tuner_status property. Existing Core Asset FEI devices have been updated with this change. New FrontEnd devices created with the IDE will automatically have this change.
  • Improving the user experience when locating and connecting to existing REDHAWK Domains.
  • Providing users with the option to copy Properties from other projects in their workspace or choose from pre-defined REDHAWK Properties when developing a Component or Device.
  • Displaying a REDHAWK editor when double-clicking on SCD XML files.
  • Showing IDL details when Ports are selected in the REDHAWK Explorer view.
  • Adding a notification that is now displayed after exporting projects to the Target SDR.
  • Providing better support for adding and editing Services in a DCD file.
  • Adding a Connection Callbacks section to the REDHAWK Manual.
  • Extending DeviceManager to call configure() on Services at the time they register. This enables users to implement custom Property handling if so desired.
  • Providing functionality to add custom headers to project files when generating code.
  • Removing some obsolete options from the Core Framework and BulkIO configure scripts.
  • Adding support for the state of the Connection Manager and Event Channel Manager to be restored when persistence is enabled.
  • Updating the IDE to use the latest available Eclipse tooling, Eclipse Oxygen.
  • Improving Python Sandbox tooling for new Domain features and resources. Specifically, extended DataSource to provide access to all the available SRI and the data timestamp.
  • Adding reservation schema graph in the documentation to enhance the text describing capacity allocation reservation for the GPP.
  • Adding functionality to the IDE so when users edit a property's name, the IDE automatically supplies an appropriate ID for the property based on REDHAWK's naming convention.
  • Providing validation of Property references in SAD and DCD files and flagging invalid Property references as errors.
  • Adding the ability to terminate services in the Sandbox via the hover pad or the delete key and making the terminate icon more distinct throughout the IDE.
  • Adding the stop timeout control to the Application. Options, like the stop timeout, can be configured when designing Waveforms in the IDE.
  • Adding functionality in the IDE to install the diagram layout when installing a SAD/DCD file (either by drag-drop or via its RPM .spec file). At runtime, the IDE checks for the diagram layout and if present, preserves the developer's layout.
  • Adding an option to enable the Domain Manager's logging level to be dynamically changed.
  • Adding a new packed bit data port type and data format for BulkIO:
    • Port API for component developers is fully implemented in C++, Python, and Java.
    • Plotting, monitoring, and interacting with data are supported in the IDE and Python Sandbox.
    • For C++ and Python, a new bitbuffer class provides high-level access to packed bit data.
    • In Python, all BulkIO ports now support a stream-based API that is consistent with C++.
  • Correcting issue in the Python Sandbox so now when the BulkIO queue is full, the Python Sandbox no longer locks up when trying to release stopped Components.
  • Providing Generate Waveform and Generate Node buttons in the IDE editors to initiate file generation. This ensures that Waveform and Node project spec files are created or modified only when requested by the user.
  • Adjusting the default tuner type for the Python Sandbox tuner allocation. It is now RX_DIGITIZER rather than DDC, matching the default tuner for a generated FEI Device.
  • Adding CF base class support and IDE tooling to allow users to create, implement, and test a FrontEnd scanner device.
  • Adding ext...
Read more

REDHAWK 2.1.3

16 Jul 16:32
Compare
Choose a tag to compare
REDHAWK 2.1.3 Pre-release
Pre-release

REDHAWK Release Notes, Version 2.1.3

The effort in REDHAWK 2.1.3 focused on:

  • Adding snapshot capability of network data and performing SDDS packet analysis on the captured data.
  • Adding scripts and configuration files that allow REDHAWK core services to run as system services. In addition to these services, integrators can define REDHAWK waveforms that are deployed during the system boot process.
  • Extending the tool, rh_net_diag, to provide read/write/execute permissions checks on directories important for running a REDHAWK system.
  • Changing the default logging directory for omniEvents service to reside in /var/log/omniEvents.
  • Changing FrontEnd Interfaces (FEI) property definitions:
  • For devices, the FRONTEND::tuner_allocation and FRONTEND::listener_allocation allocation properties are now writeonly instead of readwrite. Because the properties are now created as writeonly, they can no longer be queried. This change was made to prevent confusion with the actual state of the FrontEnd device, which is reported by the FRONTEND::tuner_status property. Existing Core Asset FEI devices have been updated with this change. New FrontEnd devices created with the IDE will automatically have this change.
  • Adding functionality to the IDE so when users edit a property's name, the IDE automatically supplies an appropriate ID for the property based on REDHAWK's naming convention.
  • Adding documentation to the REDHAWK Manual regarding naming elements in structures such that element names can be reused across different structures.
  • Updating the rh.VITA49 REDHAWK shared library to include support for VITA 49.2. Initial release adheres to the draft specification, revision 00.51 dated 5 Dec 2016, which was available during development.
  • Adding functionality in the IDE to install the diagram layout when installing a SAD/DCD file (either by drag-drop or via its RPM .spec file). At runtime, the IDE checks for the diagram layout and if present, preserves the developer's layout.
  • Adding an option to enable the Domain Manager's logging level to be dynamically changed.
  • Adding a new packed bit data port type and data format for BulkIO:
    • Port API for component developers is fully implemented in C++, Python, and Java.
    • Plotting, monitoring, and interacting with data are supported in the IDE and Python Sandbox.
    • For C++ and Python, a new bitbuffer class provides high-level access to packed bit data.
    • In Python, all BulkIO ports now support a stream-based API that is consistent with C++.
  • Adding CF base class support and IDE tooling to allow users to create, implement, and test a FrontEnd scanner device.
  • Adding extensible hierarchical name structure support for loggers.
  • Correcting behavior for structures that have a default value that is mixed simple values and sequences; if the sequence is empty, it is not treated as nil.
  • Adding support for working with multi-out ports.
  • Adding Allocation Manager functionality in the IDE:
  • Viewing current allocations and allocation details for each allocation is supported.
  • Searching for devices used for an allocation and Device Managers referenced by an allocation is supported.
  • Allocations can be deallocated.
  • Adding context-sensitive property views in the REDHAWK IDE for the following:
    • Waveform and node properties are displayed when selecting the respective runtime editor. Runtime connection details are also displayed (read-only) when selecting a connection in a diagram editor.
    • SoftwareAssembly and DeviceConfiguration properties are displayed when selecting the respective design-time editor. Design-time connection properties are displayed when selecting a connection in a diagram editor.
  • Providing better context-specific icons throughout the IDE, and updating images and text in the REDHAWK Manual to reflect these new icons.
  • Providing new functionality for interacting with event channels and message event ports.
  • Adding Connection Manager functionality in the IDE:
  • Viewing current connections and connection details for each connection is supported.
  • Searching for the source or target of a connection is supported.
  • Connections can be disconnected.
  • Fixing an issue so when waveforms containing references to mistyped properties are launched, the IDE displays all the properties including the property that had a mis-matched override in the SAD file.
  • Adding validation for mistyped property refs.
  • Fixing the DomainManager's improperly defined scoped locks.
  • Implementing several C++ fixes to allow REDHAWK to compile on newer compilers.
  • Correcting default property kinds in the DTD and XSD so they are no longer out of sync with the behavior of the Core Framework and the ICD.
  • Adding new behavior to the C++ input stream API: It is now possible to "peek" into data sets that have reached EOS by setting consume to 0 when using read or tryread.
  • Adding support to custom IDL and FEI control ports so they now accept a connection id argument to specify the connection to use and throw exceptions if the port call is exercised and no connection exists or a connection is specified that does not exist.
  • Fixing an issue so when unhandled exceptions occur in Python and Java components, the components terminate rather than remain in a defunct state. If termination was not requested, the GPP now sends a message to the IDM channel when a component exits with a non-zero status.
  • Updating the FEI specification to require a device to only partially support a requested signal range rather than the whole signal to return a valid request. The validateRequest function in the frontendInterfaces support package checks that a partial overlap of the requested band succeeds rather than requiring full coverage of the requested range.
  • Patching omniORBpy to prevent possible segfaults in multithreaded code.
  • Updating the IDE on CentOS 7 to use the latest available Eclipse tooling, Eclipse Photon.
  • Correcting behavior so readonly property kind properties for devices and services can now be modified during deployment using Device Configuration Descriptor (dcd.xml) file.
  • Correcting a bad XML file in the SDRROOT that caused loading of the SDRROOT to stop and report an error.
  • Updating rh.VITA49 to adhere to the approved version of V49.2 Standard (August 2017).
  • Adding an option for MessageSupplierPort to send messages to a specific connection.
  • Deprecating REDHAWK Enterprise Integration and removing all references to it within the documentation.
  • Providing the ability to generate configuration files for waveforms and nodes for use by the REDHAWK admin service.
  • Changing the redhawk user's home directory. When installing REDHAWK, the home directory is now /var/redhawk. When upgrading, the existing redhawk user home directory is updated to /var/redhawk if it is currently set to /home/redhawk.
  • Refactoring IO redirection to use epoll system call to handle redirection of component output to a single file and direct IO redirection when configured for one output file per component process.
  • Correcting behavior so when a component has a struct property with an element that is a complex sequence, the value can be overloaded correctly on a waveform.

New Features

The following features were added in REDHAWK 2.1.3:

Core Framework Features

  • All components and devices now contain the getLogLevel function that allows the caller to retrieve a named logger's log level.
  • Added FEI scanner device base class and code generator support in C++, Python, and Java.
  • Added getLogLevel, getNamedLoggers, and getLogConfig to the resource API.
  • C++ components and devices now support hierarchical naming for loggers.
  • Java components and devices now support hierarchical naming for loggers.
  • Python components and devices now support hierarchical naming for loggers.
  • The Python Sandbox log setting can now be changed using strings. For example, setLogLevel("comp_1.user.foo","error") will set the comp_1.user.foo log level to CF.LogLevels.Error.
  • The loggers from the components in an application can now be retrieved using the getNamedLoggers method on the Application object. These loggers are also available through the application's logging interface (for example, setLogLevel).
    • The resetLog method on the application resets all the components' log settings to their launch state when the application was initially launched.
  • The REDHAWK AdminService may be used to start all parts of a domain on a single server.
  • The log4cxx logger is now available directly through the rh_logger in C++ components and devices.
  • Added functionality for devices to support hierarchical logging.

IDE Features

  • If a connection is selected in a design-time diagram, connection IDs can be edited in the Properties View.
  • Added support for creating new FrontEnd scanner devices.
  • Provided a wizard to trigger a scan on a FrontEnd scanner.
  • Provided the ability to load/save a scan plan for a FrontEnd scanner.
  • The context menu for Event Channels now has an option to release the Event Channel through the Event Channel Manager.
  • Added a Properties View editor for the softwareassembly/deviceconfiguration elements.
  • Added validation for mistyped property refs.
  • The Properties View now displays information about negotiated BulkIO connections.
  • For ports that support transport negotiation, the IDE now displays available transports in the Advanced tab of the Properties view.
  • Added support for monitoring port statistics for BulkIO packed bit ports.
  • Added support for displaying SRI from BulkIO packed bit ports.
  • Added support for plotting BulkIO packed bit port data as a bit raster.
  • Added support for performing a snapshot of data from a BulkIO packed bit port.
  • Updated the REDHAWK help contents within the IDE to display the newly redes...
Read more

REDHAWK 2.0.8

09 Feb 22:49
Compare
Choose a tag to compare

REDHAWK Release Notes, Version 2.0.8

The effort in REDHAWK 2.0.8 focused on:

  • Core Framework

    • Preventing sb.DataSink from adding an empty timestamp when it receives EOS in an empty packet.
    • Adding inline header comments documenting C++ BulkIO input stream, output stream, and data block APIs.
    • Fixing improperly scoped locks in Core Framework control.
    • Implementing several C++ fixes to allow REDHAWK to compile on newer compilers.
    • Correcting default property kinds in the DTD and XSD so they are no longer out of sync with the behavior of the Core Framework and the ICD.
    • Adding new behavior to the C++ input stream API: It is now possible to "peek" into data sets that have reached EOS by setting consume to 0 when using read or tryread.
    • Patching omniORBpy to prevent possible segfaults in multithreaded code.
    • Correcting behavior so readonly property kind properties for Devices and Services can now be modified during deployment using Device Configuration Descriptor (dcd.xml) file.
  • IDE

    • Resolving issue so when launching Waveforms containing references to mistyped properties, the IDE displays all the properties including the property that had a mis-matched override in the SAD file.
    • Removing old code generation templates for REDHAWK 1.8 from the IDE. Old IDE diagrams for Waveforms and Nodes from pre-2.0.0 were also removed.
    • Adding M2Eclipse to the REDHAWK IDE, which provides tooling to work with Maven-based projects such as the REDHAWK Enterprise Integration assets.
  • Documentation

    • Adding documentation to the REDHAWK Manual regarding naming elements in structures such that element names can be reused across different structures.
    • Adding documentation explaining how to use the Allocation Manager.
  • REDHAWK Enterprise Integration

    • Enhancing the REDHAWK Enterprise Integration Demo GUI by adding support for Raster and Line plots from time- or fft-based data using Sigplot, using JTransforms with REDHAWK Websocket to perform FFT, cleaning up the Demo GUI, and updating screenshots and documentation to include new FFT and Raster functionality in the GUI.
    • Adding a helper method to dynamically connect two Components; Improving methods used to set REDHAWK Properties; and Adding AllocationFactory to ease users’ ability to generate allocations.
    • Adding functionality in REDHAWK REST and Websocket to support JAAS-based method level access.

Fixes

The following IDE and Core Framework fixes were completed in REDHAWK 2.0.8.

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.8.

  • Persona and programmable device pattern code generators compile correctly.
  • C++ components using the RH_LogEventAppender threw an exception during shutdown when the event service was terminated before the component.
  • Properties set as "commandline" are appropriately overridden on deployment.
  • Removed traceback messages from qtbrowse.
  • sb.DataSink no longer stores invalid timestamps.
  • Assembly controller properties can be renamed (and overridden) at the Application level.
  • Fixed improperly scoped locks in Core Framework control.
  • Fixed several C++ constructs that do not compile on newer versions of gcc.
  • To maintain backwards compatibility, updated the XSD/DTD default value for kind and configurationkind from "property" to "configure".
  • Listing registrants for an unknown event channel returns an empty list.
  • Readonly property kind properties for Devices and Services can now be modified during deployment using Device Configuration Descriptor (dcd.xml) file.

Special Resolutions

The following previously reported Known Issues have been closed in REDHAWK 2.0.8 with the following resolutions:

  • Won’t Fix
    • Unit test for Devices in 1.8.X returns Component object - This issue is not present in REDHAWK 2.0+ series.
    • Struct_from_props fails during allocate_capacity in python device - This behavior is not an error.
  • Fixed By Other Issue
    • GPP Valgrind Results - Fixed by improvements made to the GPP during development in the REDHAWK 2.0 series.
  • Cannot Reproduce
    • –enableOctave test failed on codegen test test_02_EvaluateUnitTests [Component: octaveTest0]

IDE Fixes

The following IDE bug fixes were completed in REDHAWK 2.0.8.

  • An error is now displayed when attempting code generation with an unsupported template type.
  • Fixed an issue to ensure that only appropriate menu items to the current selection are displayed in context menus.
  • In the Port Monitor View, corrected the display of data rates for low-rate data streams.
  • The Launch Waveform wizard search capability now assumes a leading wildcard character.
  • Double-quote entries for property string values are now always treated as empty strings.
  • In the PRF editor, the Remove Value button is now correctly enabled.
  • Resolved errors when adding and removing Devices and Services using the Devices tab in the Node editor.
  • Resolved title text discrepancies in the Properties View.
  • The context menu for a Domain Manager no longer shows "Connect" if the Domain Manager is already connected.
  • Fixed issue to ensure that simple properties that are not of type "property" cannot be assigned the command-line attribute.
  • In the Properties tab of the SAD editor, the members of properties belonging to the assembly controller no longer display an external ID.
  • Corrected a code issue internal to the IDE during the code generation process.
  • When attempting to perform a "Display SRI" action on a Tuner with no applicable Ports, an error message is now displayed.
  • Displaying SRI for a FrontEnd tuner no longer prevents other IDEs from also displaying the SRI.
  • Ensured that when plotting SDDS ports, a conneciton ID can be specified. This also corrects issues with plotting for SDDS Ports on FEI multi-out Devices.
  • Improved error handling when a query of a resource’s Properties returns unexpected results.
  • Corrected an issue where values could not be added to a struct sequence in the Properties tab of the SAD editor.
  • Deleting a resource in the Target SDR now closes any associated open editors.
  • Limited refreshes of underline Port model objects.
  • Corrected an NPE that occurred when using the Redhawk Import wizard for a shared library project.
  • Ensured that deleting a Component instantiation only cleans up the hosting Component placement if there are no remaining sibling instantiations.
  • Removed shared libraries from the Property browser.
  • Deleting an aggregate Device removed references from associated compositepartofdevice tags.
  • When adding Ports using the Port tab in the SPD editor, an NPE is no longer logged.
  • When launching a Domain Manager with a name that is duplicated in another running Domain, the IDE now always shows an error.
  • Resolved ClassCastException when launching Waveforms containing references to mistyped properties.
  • Corrected an issue where the IDE could hang or become sluggish while using the CORBA Name Browser view.
  • Corrected the default property kind in the DTD schema for PRF files.
  • The IDE now allows configuring ’property’ kind properties that have the ’commandline’ attribute set.
  • The IDE now passes the initial value of ’property’ kind properties to initializeProperties() when resources are launched in the Sandbox.
  • In the Properties tab of the SAD editor, overriding the values of properties is no longer allowed when it does not make sense (for example, allocation properties).
  • Negative numbers are no longer allowed in values for complex unsigned properties. Parsing of complex boolean properties was also corrected.
  • Added the Logging Configuration Plugin appendix to the help and corrected the link to the List of Acronyms appendix.
  • Corrected an error that occurred when the value of a simpleref inside a structref in a SAD file did not make sense for the referenced property type.
  • Resources now report an error if they receive a non-sequence value for a simple sequence property.
  • Fixed incorrect validation message for structs containing a sequence with no values while also containing a simple with a default value.
  • Corrected an NPE that occurred when saving a SAD or DCD file with no name.
  • When installing IDL projects with sudo privileges, the permissions are set on the installed artifacts such that they are visible to non-root users on the system.
  • Added the Eclipse p2 director application to the REDHAWK Explorer product.
  • Resources now show errors associated with any of their properties.
  • An internal IDE model was corrected to prevent a compilation error.
  • Fixed issue to ensure Data List is not enabled for unsupported Ports.
  • Fixed issue to ensure that Play Port is not enabled for unsupported Ports.
  • Fixed issue to ensure that Snapshot is not enabled for unsupported Ports.
  • Fixed issue to ensure that the profile for a running Domain Manager, Waveform, or Device manager cannot be edited.
  • Fixed issue to ensure that the Domain Waveform associated with a local Waveform cannot be edited.
  • Fixed issue to ensure that the exec params for a launched resource in the Sandbox cannot be edited.
  • Fixed issue to ensure that the implementation ID for a launched resource in the Sandbox cannot be edited.
  • After listening to an event channel, the IDE now correctly releases all internal resources.
  • Event channels can now be listened to from the CORBA Name Browser view.
  • Fixed issue to correct an NPE so it does not occur while interacting with the CORBA Name Browser view.
  • Text o...
Read more

REDHAWK 2.1.2

13 Dec 23:06
Compare
Choose a tag to compare
REDHAWK 2.1.2 Pre-release
Pre-release

REDHAWK Release Notes, Version 2.1.2

The effort in REDHAWK 2.1.2 focused on:

  • Core REDHAWK Features and APIs

    • Shared address space Components: Significant enhancement of Component model and BulkIO to support high performance I/O. Preliminary developer documentation for the REDHAWK 2.1.0 beta release is available at https://github.com/RedhawkSDR/core-framework/tree/2.1.2/docs/shared-address. This feature will be under extensive evaluation during the 2.1.x beta release series and is expected to provide the ground work for several new major enhancements to REDHAWK.
    • Implementing a new zero-copy IPC mechanism for BulkIO that uses shared memory to transfer data between two processes on the same host. This is a follow-on enhancement to the shared address space Components feature. Preliminary developer documentation for the REDHAWK 2.1.0 beta release is available at https://github.com/RedhawkSDR/core-framework/tree/2.1.2/docs/shared-memory/shared-memory-ipc.md.
    • FrontEnd Interfaces (FEI) Property definition change: For Devices, the FRONTEND::tuner_allocation FRONTEND::listener_allocation allocation properties are now writeonly instead of readwrite. Because the properties are now created as writeonly, they can no longer be queried. This change was made to prevent confusion with the actual state of the FrontEnd Device, which is reported by the FRONTEND::tuner status property. Existing Core Asset FEI Devices have been updated with this change. New FrontEnd Devices created with the IDE will automatically have this change.
    • Adding support for a new type of Property, utctime, extending the list that includes types such as short or string. This timestamp Property is used in PropertyChangeEvents and can be queried from Components/Devices with the id QUERY_TIMESTAMP, which is useful when synchronizing the state of the system. utctime can be used by Component/Device developers as an additional type of Property.
    • Adding functionality for capacity to be reserved for an entire host collocation on the SAD file. The reservation is a capacity floor for the Components in the host collocation, where the amount of capacity utilized by the aggregate set of Components is this reservation or actual, whichever is higher. This reservation is allocated against the target GPP running this Application, allowing the GPP to verify that the request can be satisfied, reducing the likelihood of over-subscription.
    • Adding support for DCD files to have a startorder attribute, which functions similarly to the SAD file’s startorder. On startup, “start” is automatically called on Devices and Services (when possible), and on shutdown, reverse-order “stop” is called. The IDE’s tooling for DCD files has been updated to display and edit startorder.
    • Adding support for the DeviceManager to resolve run time environment settings when deploying Devices and Services that have soft package dependencies.
    • Resolving issue so that during Application release, calls to the Application object no longer result in misleading errors.
    • Adding functionality within the code generators so they create C++, Java, or Python constants for enumerated values defined in the PRF.
    • Improving flexibility to ignore GPP threshold checks when determining if the GPP should go into a BUSY state.
    • Removing some obsolete options from the Core Framework and BulkIO configure scripts.
    • Resolving issue where processes with spaces in the names would cause the GPP to terminate.
    • Resolving issue to allow for slow startup conditions of OmniNames service before starting OmniEvents service.
    • Adding the stop timeout control to the Application. Options, like the stop timeout, can be configured when designing Waveforms in the IDE.
    • Resolving issue with incorrect exception being thrown during allocateCapacity.
    • Resolving issue when shutting down orb from Python resources.
    • Providing a warning in the logs if a message is too large.
    • Resolving issue with the code generators so they can be run on systems with FIPS enabled.
    • Resolving issue so generated C++ FEI Devices do not leak memory when deallocating listeners. Existing Devices must be regenerated and recompiled to apply this fix.
    • Resolving a memory leak in FrontendTunerDevice::create(). Existing Devices must be recompiled to apply this fix.
    • Resolving issue so the function returnRFInfoPkt transforms all fields between types frontend::RFInfoPkt and FRONTEND::RFInfoPkt.
    • Adjusting the default tuner type for the Python Sandbox tuner allocation. It is now RX_DIGITIZER rather than DDC, matching the default tuner for a generated FEI Device.
    • Preventing sb.DataSink from adding an empty timestamp when it receives EOS in an empty packet.
  • REDHAWK Systems

    • Adding scripts and configuration files that allow REDHAWK core services to run as system services. In addition to these services, integrators can define REDHAWK Waveforms that are deployed during the system boot process.
  • Python Tooling and Sandbox

    • Adding snapshot capability of network data and performing SDDS packet analysis on the captured data.
    • Improving Python tooling to help manage REDHAWK systems. For example, these improvements include more intuitive event monitoring as well as new EventChannelManager, AllocationManager, and ConnectionManager helpers.
    • Adding support for debugger options in the Python sandbox for C++ (Valgrind or gdb), Python (pdb), or Java (jdb) Components, Services, or Devices.
    • Improving Python Sandbox tooling for new Domain features and resources. Specifically, extended DataSource to provide access to all the available SRI and the data timestamp.
    • Adding an option to enable the Domain Manager’s logging level to be dynamically changed.
  • GPP

    • Waveform Metrics support: Application objects now contain a “metrics” function that returns GPP usage metrics for individual Components as well as overall for the Application. Metrics are viewable in the Properties view of the IDE. Waveform metrics can now be accessed in the REDHAWK Driver Java and REST APIs.
  • IDE

    • Adding the Components tab to the Waveform editor in the IDE to allow editing of Component instantiation details, including logging configuration. This information will be used to resolve the LOGGING_CONFIG_URI parameter during Component deployment.
    • Improving the user experience when locating and connecting to existing REDHAWK Domains.
    • Providing users with the option to copy Properties from other projects in their workspace or choose from pre-defined REDHAWK Properties when developing a Component or Device.
    • Displaying a REDHAWK editor when double-clicking on SCD XML files.
    • Adding a notification that is now displayed after exporting projects to the Target SDR.
    • Providing better support for adding and editing Services in a DCD file.
    • Resolving issue so Diagram shapes no longer stack if they are part of a feedback loop.
    • Removing old code generation templates for REDHAWK 1.8 from the IDE. Old IDE diagrams for Waveforms and Nodes from pre-2.0.0 were also removed.
  • Documentation

    • Adding a Connection Callbacks section to the REDHAWK Manual.
    • Updating the REDHAWK Manual with accessibility rules for all properties. Updating the REDHAWK ICD with the description of the new “property” kind.
    • Adding a Libraries chapter in the REDHAWK Manual to explain how to use shared libraries.
    • Adding documentation explaining how to use the Allocation Manager.
  • Core Assets

    • Creating a new MSDD Device released with bug fixes and enhancements and regenerated for REDHAWK 2.1.
    • Updating the ‘rh.VITA49‘ REDHAWK shared library to include support for the VITA 49.2 standard. Initial release adheres to the draft specification, revision 00.51 dated 5 Dec 2016, which was available during development.
  • REDHAWK Enterprise Integration

    • Ensuring the ‘getAllocIds‘ method return object is a List.
    • Updating REDHAWK Driver to properly clean up driver-registered Device Managers on shutdown.
    • Adding IDL source to appropriate Core Framework jars. Incorporated additional method to produce a jar bundle with a manifest built dynamically via the BnD Tools, source jar, and zip of XSDs.
    • Adding implementations of ConnectionManager, AllocationManager interfaces to REDHAWK Driver. Adding utility methods for programatically setting the log level of Domain, Application, Device, and Component resources.
    • Adding REST access to Event Channel Manager functionality.
    • Updating REDHAWK Driver to have wrapper methods for retrieving state, connections, activeSRIs, and UsesPortStatistics from BULKIO objects. Updating REDHAWK REST to make connections, activeSRIs, UsesPortStatistics, and state available.
    • Adding wrapper methods to RedhawkApplication and RedhawkComponent interfaces for easier access to aware(), componentDevices(), componentProcessIds(), and componentImplementations(). REST responses for Component and Application now display componentDevice, aware, componentProcessId, and componentImplementation information.
    • Adding ability to get and set adminState from REDHAWK Driver and REDHAWK REST. Adding ability to view usageState and operationalState from REDHAWK Driver and REDHAWK REST.
    • Adding ability to registerRemoteDomain, unregisterRemoteDomains, get device implementation information and a deviceConfiguration profile via REDHAWK Driver and REDHAWK REST.
    • Adding ability to preconfigure HTTPS and WSS, and adding documentation to explain this functionality in the Web Server Configuration section in the REDHAWK E...
Read more

REDHAWK 2.0.7

02 Oct 18:42
Compare
Choose a tag to compare

REDHAWK Release Notes, Version 2.0.7

The effort in REDHAWK 2.0.7 focused on:

  • Core Framework

    • Resolving soft package dependency issue so DeviceManager resolves run time environment settings when deploying Devices and Services that have soft package dependencies.
    • Resolving issue so that during Application release, calls to the Application object no longer result in misleading errors.
    • Improving flexibility to ignore GPP threshold checks when determining if the GPP should go into a BUSY state.
    • Resolving issue where processes with spaces in the names would cause the GPP to terminate.
    • Resolving issue to allow for slow startup conditions of OmniNames service before starting OmniEvents service.
    • Resolving issue with uninitialized data structures with BulkIO and SourceSDDS that inhibited BulkIO data transfers.
    • Resolving issue with incorrect exception being thrown during allocateCapacity.
    • Resolving issue when shutting down orb from Python resources.
    • Providing a warning in the logs if a message is too large.
    • Resolving issue with the code generators so they can be run on systems with FIPS enabled.
    • Resolving issue so generated C++ FEI Devices do not leak memory when deallocating listeners. Existing Devices must be regenerated and recompiled to apply this fix.
    • Resolving a memory leak in FrontendTunerDevice::create(). Existing Devices must be recompiled to apply this fix.
    • Resolving issue so the functions returnRFInfoPkt transform all fields between types frontend::RFInfoPkt and FRONTEND::RFInfoPkt.
    • Resolving issue so BulkIO input stream calls to read() and tryread() with a sample count do not segfault when their queue contains only an empty packet with EOS set.
  • IDE

    • Providing an option in the IDE to perform a FrontEnd Device allocation in the background to aid developers who are debugging their FrontEnd Devices.
    • Adding the Eclipse “TM Terminal” in the IDE, a full-featured terminal emulator that provides full ANSI cursor control, readline, and coloring.
    • Fixing links in the IDE’s help contents so REDHAWK help now displays correctly when links within the help are selected.
    • Resolving issue so Diagram shapes no longer stack if they are part of a feedback loop.
  • Documentation

    • Adding documentation for developing a logging configuration plug-in that will be used to resolve the LOGGING_CONFIG_URI parameter during deployment of Devices, Services and Components.
    • Renaming the Generating Code section to Generating Code for Components and explaining the code generation process and what occurs in the IDE when the code is generated.
    • Updating the REDHAWK User Manual with accessibility rules for all properties. Updating the REDHAWK ICD with the description of the new “property” kind.
  • REDHAWK Enterprise Integration

    • Adding toString() method to RedhawkStruct object, ensuring the getAllocIds(RedhawkStruct s) return object is a List, and adding a helper method for retrieving allocIds called getAllocIds().
    • Updating REDHAWK Driver to properly clean up driver-registered Device Managers on shutdown.
    • Adding IDL source to appropriate Core Framework jars. Incorporated additional method to produce jar bundle with manifest built dynamically via the BnD Tools, source jar, and zip of XSDs.
    • Updating REDHAWK Java Driver and REDHAWK REST to make it easier for users to access External Properties in Waveforms.
    • Adding implementations of ConnectionManager, AllocationManager interfaces to REDHAWK Driver. Adding utility methods for programatically setting the log level of Domain, Application, Device, and Component Resources.
    • Adding REST access to Event Channel Manager functionality.
    • Updating REDHAWK Driver to have wrapper methods for retrieving state, connections, activeSRIs, and UsesPortStatistics from BULKIO objects. Updating REDHAWK REST to make connections, activeSRIs, UsesPortStatistics, and state available.
    • Adding wrapper methods to RedhawkApplication and RedhawkComponent interfaces for easier access to aware(), componentDevices(), componentProcessIds(), and componentImplementations(). REST Responses for Component and Application now display componentDevice, aware, componentProcessId, and componentImplementation information.
    • Adding ability to get and set adminState from REDHAWK Driver and REDHAWK REST. Adding ability to view usageState and operationalState from REDHAWK Driver and REDHAWK REST.
    • Adding ability to registerRemoteDomain, unregisterRemoteDomains, get device implementation information and a deviceConfiguration profile via REDHAWK Driver and REDHAWK REST.
    • Preconfiguring HTTPS and WSS in REDHAWK Enterprise Integration and adding Web Server Configuration section in REDHAWK Enterprise Integration User Guide.

Fixes

The following IDE and Core Framework fixes were completed in REDHAWK 2.0.7.

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.7.

  • The Python Sandbox DataSource always calculates per-packet time stamps using floating point arithmetic, avoiding truncation errors when given an integer value for the sample rate.
  • Writing to a C++ BulkIO output stream configured for complex data with real data and a list of time stamps now interprets the time stamp offsets in terms of complex samples, preserving the integrity of the time stamps.
  • On the GPP, when nic_usage is disabled, no message is generated when the usage threshold is exceeded.
  • Resolved issue so now files_available and threads are checked for GPP BUSY state.
  • Clarified logging message regarding reservations.
  • The default implementation of runTest() for Python Components and Devices throws the correct CF.TestableObject.UnknownTest error.
  • Changed run user for omniEvents to omniORB user.
  • Initialized internal data structure for managing blocking state for input Ports.
  • When nic_usage is set to 0 in the thresholds property of the GPP, the GPP will enter a BUSY state, irrespective of the overall NIC usage.
  • Thread management in the Python Component/Device base class is updated to better utilize the processor.
  • Added support to allow LOGGING_CONFIG_URI to be passed on the command line during Component deployment irrespective of whether it was defined by the Component.
  • On CentOS 7, C++ LoadableDevices no longer throw a CORBA::COMM_FAILURE exception from load() when the file cannot be loaded.
  • The severity of the log message when a C++ Device cannot connect to the IDM channel has been reduced from error to warning.

Special Resolutions

The following previously reported Known Issues have been closed in REDHAWK 2.0.7 with the following resolutions:

  • Won’t Fix

    • Struct_from_props fails during allocate_capacity in python device - This behavior is not an error.
    • Query behavior for Optional Elements in Structs - All elements in struct properties are handled as a single configuration item.
    • Make sendChangedProperty events safe for structs that have had attributes added - This issue was rejected.

IDE Fixes

The following IDE bug fixes were completed in REDHAWK 2.0.7.

  • Updated Java environment specification to Java 8 for the plotter and editor applications.
  • Corrected some configuration data for the IDE plotter application.
  • Corrected an issue that could cause the CORBA name browser to slow the entire UI.
  • Resolved a code quality issue.
  • Corrected context menu icons for simple and simple sequence Properties.
  • Corrected some information missing from Properties when creating new FEI Devices.
  • Corrected the remove button in the new FrontEnd Device wizard so that it is not enabled when a Property cannot be removed.
  • Corrected an error where the Property table in the new FrontEnd Device wizard was too small to see Properties on RHEL 7 systems.
  • Resolved ClassCastException when calling Expand All or Collapse All on a Waveform that includes a HostCollocation.
  • Corrected the display of some spinner controls on RHEL 7.
  • Resolved issue so Implementation tab now displays all usesdevice Property types.
  • Ensured that some code intended only for debugging is not included in the IDE.
  • Corrected the lightweight auto-refresh preference.
  • Fixed NPE in FindComponentConstraint.
  • Fixed error when terminating a C++ Component launched in debug mode.
  • Corrected several internal configuration issues with the code generation menus/buttons for Components.
  • Corrected an NPE that could occur when validating SAD or DCD files with references to non-existent struct sequence Properties.
  • Corrected internal IDE code to properly indicate when XML validation problems are found.
  • Updated SAD/DCD loggingconfig URI validation messages.
  • Component usage name and naming service ID are now kept in sync after a graphical edit.
  • Added missing icons in the DCD editor.
  • Updated a missing environment specification to reflect the requirement for Java 8.
  • The New Control Panel Project button is no longer displayed when editing a REDHAWK shared library project.
  • Corrected an internal IDE issue that could prevent loading REDHAWK XML.
  • Corrected a rare bug that could cause the content in the pages of an editor to become un-synchronized.
  • The BULKIO SRI keyword CHAN_RF is now always preferred to COL_RF for center frequency when plotting.
  • Corrected a code issue that could have suppressed Sandbox errors.
  • The IDE no longer attempts to read D...
Read more