Skip to content

@RedhawkDeployer RedhawkDeployer released this Mar 15, 2019


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

@RedhawkDeployer RedhawkDeployer released this Mar 15, 2019 · 1 commit to master since this release


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 to a house icon with the text "Home". Changed the REDHAWK icon and "REDHAWK" text to also link to the main website page.
  • Added instructions (README.md file) on how to use the new documentation repository.
  • In the Waveform Editor, in the Components Tab section, added the Components Tab image.
  • Updated documentation repos to pull from the local copy of the docdock theme.
  • In References for Application Developers, corrected the Sandbox link to point to the Sandbox section.
  • In Creating a New Node, corrected the Exploring the Running Node link to point to the Exploring the Running Node section.
  • In Creating a Waveform Service Configuration Using the rhadmin Script, corrected the Waveform Configuration File link to point to the Waveform Configuration File page.
  • Fixed error of DMD file reference to be DCD file in Creating a Node section.
  • Removed a sentence from the Workbench topic.
  • Corrected expanded term information for JDT (Java Development Tools) and CDT (C/C++ Development Tools) acronyms.
  • Removed the following glossary terms: Editor, System, Ethernet, Linux, and Local Area Network.
  • Updated the Installing the Framework from Source and the Device and Service Affinity sections to reflect affinity disable build options.
  • Removed REDHAWK Core Asset version numbers from tables in REDHAWK Core Assets section.
  • Updated the Persistence Store and the Installing the Framework from Source sections to reflect that the default build now enables the sqlite backend.
  • Added information about control port connection management.

Special Resolution

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

Core Framework Special Resolutions

  • Component loggers do not honor DEBUG_LEVEL exec param - Fixed by Other Issue - Fixed by update in REDHAWK 2.1.3 release: Changing log_level on the Domain Manager now affects all classes in the Domain Manager process space.
  • waveform.instanceName returns assembly controller instance name - Cannot Reproduce - This bug could not be reproduced against REDHAWK 2.0.8 or 2.2.0.
  • Error when running daughterboard tests - Fixed by Other Issue - Fixed by resolving 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.

IDE Special Resolutions

  • Duplicate of Generated XML files from the Python sandbox cannot be loaded correctly on the Chalkboard (fixed in REDHAWK 2.2.1) and IDE sends incorrect properties during sandbox launch (fixed in REDHAWK 2.0.4).
  • Drag selection in diagrams uses white dotted lines for the selection rectangle - Won't Fix - This behavior only affects CentOS 6/GTK 2.

Documentation Special Resolutions

  • custom/static/css/custom.css on branch 'docs-829' generates errors using csslint - Won't Fix - The CSS issues are artifacts of the docdock theme and cannot be changed.
Assets 23
Dec 5, 2018
Updating README.md. Upping core-framework and adminservice to 2.2.1

@shmahon shmahon released this Sep 7, 2018 · 5 commits to master since this release

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 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.
  • Adding validation for mistyped property refs.
  • 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.

Caution: This functionality was added to all FEI ports, including the RFInfo port. As a result, if an RFInfo port is configured as a uses port and there are no connections, an exception will occur and must be caught to prevent a disruption to the operation of the device or component. This behavior will be corrected in a future release.

  • 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.
  • Updating the IDE on CentOS 7 to use the latest available Eclipse tooling, Eclipse Photon.
  • 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.

Fixes

The following fixes were completed in REDHAWK 2.2.0:

Core Framework Fixes

  • When a property has the element action as <action/> rather than <action type=external/>, it is now correctly processed as external.

IDE Fixes

  • Ensured that kind and configurationkind elements in PRF XML files default to configure if not specified.
  • Corrected an issue that prevented struct sequence properties without any values from having their values adjusted.

Special Resolution

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

Core Framework Special Resolutions

  • Sandbox DataSource.push() slow - Won't Fix - In REDHAWK 2.1.3, the new StreamSource sandbox helper provides better performance than the legacy DataSource helper when pushing real sample data. DataSource.push() will not be updated in the 2.0.x series to address this performance concern.
  • Struct_from_props fails during allocate_capacity in python device - Won't Fix - This behavior is not an error.

IDE Special Resolutions

  • Uses FEI Device wizard overwrites existing allocation ID - Duplicate of FEI uses device wizard doesn't preserve existing XML values.
  • SAD editor properties tab allows setting external IDs on struct / struct seq members - Cannot Reproduce
Assets 18
Pre-release
Pre-release

@drwille drwille released this Jul 16, 2018 · 11 commits to master since this 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 redesigned help.
  • Added support for viewing a data list from BulkIO packed bit ports.
  • Provided a preference that can disable automatic property scoping in the PRF editor.
  • Provided the ability to allocate scanner devices.

Documentation Features

  • Added hierarchical logger information in the Logging section of the REDHAWK Manual.
  • Updated the REDHAWK ICD with new information including RX_SCANNER_DIGITIZER, ScanningTuner, AnalogScanningTuner, and DigitialScanningTuner.
  • Added getLogLevel information to the REDHAWK ICD.
  • Added Custom IDL Interfaces information to the REDHAWK Manual.
  • Added required naming conventions to the REDHAWK Manual.
  • Added a new section to the REDHAWK Manual, Multi-out Port Support in the IDE.
  • Added the following in the REDHAWK Manual to reflect new IDE support of FrontEnd scanner devices: updated images in the Creating an FEI Device in the IDE section and added additional instructions for scanners in the Using an FEI Device in the IDE section.
  • Added the REDHAWK System Services Appendix to the REDHAWK Manual.
  • Updated images of plots in the REDHAWK Manual.
  • Updated the REDHAWK ICD with new information including dataBit and BitSequence.
  • Added a new section, Bit Data, to the REDHAWK Manual.
  • Added Python-specific documentation of BulkIO streams, and updated the C++ sections in the REDHAWK Manual.
  • Added examples of connectionid argument for message supplier send methods to the Message Producer section of the REDHAWK Manual.

Improvements

The following improvements were added in REDHAWK 2.1.3:

Core Framework Improvements

  • The Octave libraries are now located with the octave-config utility, which reduces the time taken to find them.
  • The helper functions for validating requests in FEI were improved to allow partial overlap in frequency.
  • When an unhandled exception occurs in a C++ component, the exception is logged instead of printed to the console before the component terminates.
  • Updated inline header comments documenting C++ BulkIO input stream, output stream, and data block APIs.

IDE Improvements

  • Added support to run-time resources in the IDE that enables users to listen to messages generated by a component.
  • Created a new icon for the Shared Libraries container in the Target SDR.
  • Waveform & Device Manager properties are now displayed in the Properties View when the associated editor is selected.
  • Added "in" and "out" icons to ports in the Find By wizards in SAD diagrams.
  • When designing a SAD or DCD file, the diagram layout is now installed to the SDRROOT along with the SAD/DCD file.
  • Logging functionality in the IDE (log level, edit log config, tail log) can now be used with a running Domain Manager as well.
  • The IDE now updates its model in response to events from the Domain indicating an event channel was added or removed.
  • Added unique SPD implementation icons for each programming language.
  • If a connection is selected in a runtime diagram, connection properties are now displayed.
  • At runtime, diagrams now respect the diagram layout if it was installed along with the SAD/DCD file.
  • The IDE now allows the connection ID to be specified when listening to messages from a message event port.

Documentation Improvements

  • Added information in the REDHAWK Manual in the Inspecting Allocations through the Python Sandbox section and also added a new section, Inspecting Allocations using the IDE.
  • Added information in the Event Viewer View section of the REDHAWK Manual to explain how to view the events emitted by message ports.
  • Added the following sections to the REDHAWK Manual: Inspecting Connections using the IDE and Disconnecting Connections using the IDE.
  • Updated FEI RFInfo Bandwidth behavior in the Tuner Allocation Properties section of the REDHAWK Manual.
  • Updated information in the REDHAWK Manual to reflect the PRF editor improvements for property ID and Name.

Fixes

The following fixes were completed in REDHAWK 2.1.3:

Core Framework Fixes

  • Modified log message so when pushing data, if Python BulkIO ports encounter a communications exception, the message in the exception is included in the log message.
  • Persona and programmable device pattern code generators compile correctly.
  • Changing log_level on the Domain Manager now affects all classes in the Domain Manager process space.
  • Resolved issue so the Domain Manager can use the RH_LogEventAppender.
  • Clarified the conditions under which scanning is toggled in FEI scanners.
  • Assembly controller properties can be renamed (and overridden) at the Application level.
  • Resolved issue for structures with a default value that is mixed simple values and sequences. If the sequence is empty, it is not treated as nil.
  • Fixed improperly scoped locks in Core Framework control.
  • Fixed several C++ constructs that do not compile on newer versions of gcc.
  • Added Python help documentation to SDDSAnalyzer module.
  • To maintain backwards compatibility, updated the XSD/DTD default value for kind and configurationkind from "property" to "configure".
  • Removed additional log message from Python base class when an invalid property is queried.
  • Listing registrants for an unknown event channel returns an empty list.
  • Resolved issue with createTunerAllocation in the Python Sandbox. It now provides 0 as the default value for sample_rate (rather than 1).
  • Resolved issue so if a component crashes, the application object in the Python Sandbox does not lose its comps member.
  • Readonly property kind properties for Devices and Services can now be modified during deployment using Device Configuration Descriptor (dcd.xml) file.
  • Changed ArraySink's retrieveData method to always return a tuple of values to match prior API versions.
  • Fixed an issue to ensure that LOGGING_CONFIG_URI is allowed as a property, even when the property is not explicitly declared for the component or device.
  • Resolved issue so external writeonly properties are not part of the query set when the application object receives a query all.
  • Added support to clean artifacts from omniEvents 2.7 and 2.8+ to the cleanomni script.
  • Improved system reliability with regards to shared memory as a finite resource:
  • New hybrid allocator uses shared memory if available, dynamically falling back to BufferManager to use local memory.
  • BulkIO shared memory transport transparently sends data over FIFO link if data cannot be transferred via shared memory.
  • GPP monitors the current shared memory state of the system, going to a busy state when the available amount drops below a threshold and sending an event.
  • Creating process removes heap file on exit, rather than relying on reference counts.
  • GPP cleans up heap files left behind when a component exits.
  • New redhawk-shminfo and redhawk-shmclean tools show system shared memory state and clean up stale shared memory files, respectively.
  • When complex sequences are elements in struct and structsequence properties, the overloads now work as expected.

IDE Fixes

  • 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.
  • A waveform's external properties are now displayed and editable when viewing a Sandbox waveform run configuration.
  • Components launched in the Chalkboard editor now always have their ports displayed in the REDHAWK Explorer view.
  • 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 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.
  • Corrected an error that could occur during a build of a C++ project if the SPD file contained invalid XML.
  • An error message is now displayed if a user attempts to launch a component or waveform with badly malformed XML from the Overview tab of the editor.
  • An error message is now displayed if a user attempts to launch a component with badly malformed XML from the Chalkboard diagram.
  • Corrected an issue that caused long refresh times when opening diagrams.
  • 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.
  • When adding Ports using the Port tab in the SPD editor, an NPE is no longer logged.
  • Resolved ClassCastException when launching Waveforms containing references to mistyped properties.
  • 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.
  • 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.
  • The Properties View icon is now context sensitive.
  • Added the Eclipse p2 director application to the REDHAWK Explorer product.
  • Resources now show errors associated with any of their properties.
  • An error message is now displayed in the Problems view when a problem is detected in a REDHAWK XML file during build.
  • 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 on the IDE splash screen is now correctly displayed and not truncated.
  • When selecting a port in the DCD or Device Manager diagrams, the IDL tree browser is displayed in the Properties View.
  • A code quality issue was addressed to ensure resources within the IDE are always properly closed.
  • A code quality issue was addressed to prevent a potential NPE.
  • Selecting Play Port from the context menu of a BULKIO::dataLongLong port now works correctly and plays a sound.
  • Addressed a code quality issue to prevent errors when handling REDHAWK time property values.
  • Resolved a code quality issue to prevent errors when handling REDHAWK complex number property values.
  • Addressed a code quality issue by removing redundant or unused code.
  • Addressed a code quality issue to ease maintainability.
  • Corrected the precision of the time reported for the most recent push packet when viewing SRI.
  • Corrected an error so the FEI usesdevice wizard now displays correct values corresponding to those in the SAD XML.
  • When editing SAD files, usesdevice naming is now more consistent with device naming in DCD diagrams.
  • Fixed data list to display all values correctly.
  • If a component/device crashes in the IDE's Sandbox, any orphaned shared memory is now cleaned up.
  • Corrected an NPE that may occur during drag-drop in a diagram.
  • Text now displays correctly when selecting an entry in a drop-down in the Properties editor.
  • Corrected several validation issues with run/debug configurations.
  • When configuring a REDHAWK run/debug configuration, the dialog for choosing a file in the workspace was corrected to only show applicable XML files.
  • The IDE no longer attempts to call initializeProperties() for structs without a value when launching resources in the sandbox.
  • Corrected the release icon.
  • Corrected an error so the IDE no longer calls initializeProperties() for simple sequence and struct sequences properties without values in the Sandbox.

Documentation Fixes

  • Added Octave information to installation information in the REDHAWK Manual.
  • Fonts in REDHAWK Manual, Getting Started With REDHAWK, Release Notes, and Known Issues are now consistent.
  • Added example plots to the Plotting Data section of the REDHAWK Manual.
  • Updated HTML links in the Further Reading section of the Getting Started Guide.
  • Updated information and images in the Port Monitor View section of the REDHAWK Manual to reflect use of
    Bytes/sec in the IDE when displaying data rates for low-rate data streams.
  • Enhanced the deviceSetTuning description in the Creating an FEI Device in the IDE section of the REDHAWK Manual.
  • Updated the Creating a Component that Consumes Resources section of the REDHAWK Manual to document the new loggers.
  • Updated locally named logger instructions in the Logging Within A Resource section of the REDHAWK Manual.
  • Added the Shared Memory Maintenance Appendix to the REDHAWK Manual.

Special Resolution

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

Core Framework Special Resolutions

  • Sandbox DataSource.push() slow - Won't Fix - In REDHAWK 2.1.3, the new StreamSource sandbox helper provides better performance than the legacy DataSource helper when pushing real sample data. DataSource.push() will not be updated in the 2.0.x series to address this performance concern.
  • Struct_from_props fails during allocate_capacity in python device - Won't Fix - This behavior is not an error.
  • log_level api does not appear to work for C++ components - Duplicate of Add hierarchical logging support in C++, as the log_level attribute for component interfaces is now tied to _baseLog and the resource logger.

IDE Special Resolutions

  • Generate button temporarily disabled on SPD editor - Cannot Reproduce
  • Uses FEI Device wizard overwrites existing allocation ID - Duplicate of FEI uses device wizard doesn't preserve existing XML values.
  • SAD editor properties tab allows setting external IDs on struct / struct seq members - Cannot Reproduce
Assets 18

@ryanbauman ryanbauman released this Feb 9, 2018 · 21 commits to master since this release

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 on the IDE splash screen is now correctly displayed and not truncated.

Special Resolutions

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

  • Cannot Reproduce
    • Generate button temporarily disabled on SPD editor - Cannot Reproduce
    • SAD editor properties tab allows setting external IDs on struct / struct seq members - Cannot Reproduce

Documentation Improvements/Fixes

The following documentation new features/improvements/fixes were completed in REDHAWK 2.0.8.

  • Updated the REDHAWK SCA and ICD documents to describe duplicate Device and DeviceManager registration behavior.
  • Fixed display of level 5 headings.
  • Added Octave information to installation information in the REDHAWK Manual.
  • Added a note about avoiding reserved names in the REDHAWK IDL Project section of the REDHAWK Manual.
  • Corrected incorrect reference of redhawk-connect-name with redhawk-connection-name in the REDHAWK REST section of the REDHAWK Enterprise Integration User Guide.
  • Fixed trivial grammar issue in Logging Configuration Plugin Appendix.
  • Added REDHAWK Jaxrs Security Filter chapter to REDHAWK Enterprise Integration User Guide to explain how to configure role-based access to individual REST endpoints.
  • REDHAWK Enterprise Integration documentation to explain how to configure Jetty w/ Jacorb.
  • Added required naming conventions to the REDHAWK Manual.
  • Added space after REDHAWK graphic on REDHAWK Overview title page.
  • Removed Additional Documentation section from Download page.
  • Corrected dashes in the sample code in the Setting Up the REDHAWK Repository section of the REDHAWK Manual.
Assets 22
Pre-release
Pre-release

@ryanbauman ryanbauman released this Dec 13, 2017 · 17 commits to master since this 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 Enterprise Integration User Guide.
    • 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.

New Features

The following IDE and Core Framework new features were added in REDHAWK 2.1.2.

  • The Python Sandbox DataSink object supports a stream API, allowing the DataSink to handle multiple incoming streams and variable SRI.
  • The startorder attribute was added to the componentinstantiation element of DCD (node) files. When startorder is set, the Device or Service (if it supports the CF::Resource interface), will receive a start call on the Device Manager startup and a stop call on the Device Manager shutdown.
  • Adding functionality in the Sandbox so when using “connect” on a REDHAWK object in a Python session, if the object is an FEI Device and it has a tuner allocated, a listener is automatically created and connected to that tuner.
  • The “metrics” function on the Application object accepts two string sequences (components and attributes), and returns the current utilization by all Components of GPP resources. An aggregate consumption amount is also returned.
  • Added ability to configure the timeout value for calls to an Application’s Components when the Application-level stop function is invoked.
  • Added an editor for SCD files.
  • Services can now be added when creating a Node project.
  • Added a Details section for the Service selected in the Devices/Services tab of the Node editor.
  • Added support to add Services to existing projects in the Node editor.
  • Added startorder to DCD XML model.
  • Added the ability to add well-known REDHAWK Properties when editing Properties.
  • Added the ability to connect to a Domain Manager by selecting from a list.
  • Added startorder support to the DCD diagram editor.
  • Adding editor support to adjust GPP reservations for hostcollocations in a Waveform.
  • Updated the CF.DomainManager IDL to include CF.Logging.
  • Added the ability to view Waveform metrics in the Properties view.
  • Added options to the SAD XML model.
  • Providing the ability to edit SAD file options.

Improvements

The following Core Framework and IDE improvements were completed in REDHAWK 2.1.2.

Core Framework Improvements

  • A new stream API was added to DataSink to associate SRI with specific data sets.
  • Removed the –disable-base-classes option to BulkIO’s configure script.
  • Allocation Properties marked as writeonly cannot be queried.

IDE Improvements

  • Changed the definitions of the frontend_tuner_allocation and frontend_listener_allocation Properties to writeonly for new FEI Device projects.
  • Adding the ability to clone Properties from other projects in the workspace when editing Properties.
  • Updated text for Devices tab of the Node editor.
  • A notification is now displayed after exporting projects to the Target SDR.
  • The IDE now validates CORBA URIs for the naming service reference.
  • Added the ability to specify the string “now” as a value for a utctime property.
  • Debugging a shared address space Component no longer breaks on main by default.
  • Included add/remove functionality for the new Components tab in the SAD editor.
  • Added context-specific icons to the Devices tab of the Node editor.
  • The Properties view for a running resource has been streamlined to only display Properties that can be configured or queried. When designing a Waveform or Node, only Properties that can be overridden are displayed.
  • Added the Libraries chapter to the Redhawk IDE help.
  • Added the System Service Configuration appendix to the Redhawk IDE help.

Fixes

The following Core Framework, IDE, and documentation fixes were completed in REDHAWK 2.1.2.

Release notes for Core Assets are available on Github (https://github.com/RedhawkSDR/) in each Core Asset repository.

Core Framework Fixes

  • Updated packaging to install %_localstatedir/log/omniEvents with correct ownership.
  • Removed erroneous localtime offset in utctime properties.
  • UTCTime sequence properties are represented correctly.
  • Struct properties with a utctime member in C++ or Java now compile correctly.
  • sb.DataSink no longer stores invalid timestamps.
  • 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.
  • validateRequestVsDevice evaluates the requested frequency correctly if rfinfo_pkt indicates the spectrum is inverted.
  • Clarified logging message regarding reservations.
  • Removed superfluous warning messages on DeviceManager startup.
  • Removed a superfluous message on DomainManager startup.
  • Erroneous warning removed from Domain startup.
  • The default implementation of runTest() for Python Components and Devices throws the correct CF.TestableObject.UnknownTest error.
  • Changed runser for omniEvents to omniORB user.
  • Library order for statically linked libraries fixed for new version of gcc.
  • Removed traceback messages from qtbrowse.
  • C++ components using the RH_LogEventAppender threw an exception during shutdown when the event service was terminated before the component.
  • The severity of the log message when a C++ Device cannot connect to the IDM channel has been reduced from error to warning.
  • Removed the –disable-xml-validation option to the Core Framework configure script.
  • Resolved inconsistency of RFSource API to return frontend namespace defined data structures.
  • Added namespace to property fields of hw_load_request structure.

Special Resolutions

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

  • Won’t Fix

    • Make sendChangedProperty events safe for structs that have had attributes added - This issue was rejected.
    • Unit test for Devices in 1.8.X returns Component object - This issue is not present in REDHAWK 2.0+ series.
    • Query behavior for Optional Elements in Structs - All elements in struct properties are handled as a single configuration item.
    • Struct_from_props fails during allocate_capacity in python deviceThis behavior is not an error. - 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.1.2.

  • 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.
  • Corrected an issue where the IDE could hang or become sluggish while using the CORBA Name Browser view.
  • When launching a Domain Manager with a name that is duplicated in another running Domain, the IDE now always shows an error.
  • Deleting an aggregate Device removed references from associated compositepartofdevice tags.
  • Removed shared libraries from the Property browser.
  • Ensured that deleting a Component instantiation only cleans up the hosting Component placement if there are no remaining sibling instantiations.
  • Corrected an NPE that occurred when using the Redhawk Import wizard for a shared library project.
  • Limited refreshes of underline Port model objects.
  • Deleting a resource in the Target SDR now closes any associated open editors.
  • Corrected the software update links so they point at Eclipse Oxygen, not Eclipse Mars.
  • Corrected an issue where values could not be added to a struct sequence in the Properties tab of the SAD editor.
  • Updated Java environment specification to Java 8 for the plotter and editor applications.
  • Improved error handling when a query of a resource’s Properties returns unexpected results.
  • Corrected some configuration data for the IDE plotter application.
  • 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.
  • Displaying SRI for a FrontEnd tuner no longer prevents other IDEs from also displaying the SRI.
  • 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.
  • Log level combo in SAD editor is only enabled in design-time editors when the “Enabled” checkbox is selected.
  • 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.
  • Removed runtime option from UsesDevice wizard in SAD diagram.
  • Removed a work-around for a bug fixed in Eclipse Oxygen.
  • Resolved ClassCastException when calling Expand All or Collapse All on a Waveform that includes a HostCollocation.
  • Calling terminate on the Sandbox Chalkboard when it is empty terminates a running ComponentHost if it exists.
  • Corrected the display of a spinner control in the new FEI Device wizard on RHEL 7.
  • Resolved issue so Implementation tab now displays all usesdevice Property types.
  • Removed an obsolete reference to the old Event viewer from the Show View menu.
  • Ensured that some code intended only for debugging is not included in the IDE.
  • Corrected the Event viewer so that CORBA calls are not made in the UI thread.
  • Corrected the lightweight auto-refresh preference.
  • Fixed NPE in FindComponentConstraint.
  • Fixed error when terminating a C++ Component launched in debug mode.
  • Clearing the “Usage Name” field in the SAD Editors Components tab removes the model element.
  • Corrected several internal configuration issues with the code generation menus/buttons for Components.
  • Ensured the New Control Panel Project button is displayed on the Components tab in the SAD editor.
  • Ensured the Generate Waveform and Generate Node buttons displayed on all applicable SAD and DCD editor tabs.
  • Updated SAD/DCD loggingconfig URI validation messages.
  • Component usage name and naming service ID are now kept in sync after a graphical edit.
  • Allocation IDs generated in the FEI usesdevice wizard of the SAD Diagram no longer contain user names.
  • Resolved errors when adding and removing Devices and Services using the Devices tab in the Node editor.
  • Removing a Device/Service instantiation removes the componentfile element from the DCD XML if it is not needed.
  • Component project’s Generator combo box only displays applicable code generators.
  • UsesDevice passes validation with any combination of accepted properties.
  • The Sandbox Chalkboard now shows as stopped if all Components in it are released or terminated.
  • Improved how HostCollocations are handled by the diagram layout algorithm.

Special Resolutions

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

  • Won’t Fix

    • The IDE Help REDHAWK Content is not the released version of the documentation - The IDE Help REDHAWK Content includes the documentation during the IDE build process; therefore, the released version of the documentation cannot be included at that time.
  • Duplicate

    • Hide the create control panel toolbar button for Shared Libraries (softpackage) projects - Duplicate of Control panel button shown when editing shared library in SPD editor.

Documentation NewFeatures/Improvements/Fixes

The following documentation new features/improvements/fixes were completed in REDHAWK 2.1.2.

  • Added MSDD STOCK information to the REDHAWK Manual.
  • Added a Working with SDDS Data section to the Sandbox chapter of the REDHAWK Manual.
  • Updated the REDHAWK Manual with information about loadable Component development and deployment.
  • Added information in the REDHAWK Manual about connection management with FEI Devices in the Python Package.
  • Added information about setting reservations using the IDE in the Specialized Reservation section of the Waveforms chapter of the REDHAWK Manual.
  • Added information in the REDHAWK Manual about the stream API in DataSink.
  • Added information in the REDHAWK Manual about the Waveform metrics function.
  • Added information in the REDHAWK ICD and the SCA Specification about the metrics function.
  • Added the Linux System Service Configuration appendix to REDHAWK manual.
  • Added REDHAWK REST metrics information and a REDHAWK Metrics section to the REDHAWK Enterprise Integration Demos chapter of the REDHAWK Enterprise Integration User Guide.
  • Added information in the REDHAWK manual about using Application options to set stop timeout and domain awareness.
  • Added information in the REDHAWK Manual about using the debugger in the Sandbox.
  • Added information in the REDHAWK ICD, the REDHAWK ICD Domain Profile, the SCA Specification, and the SCA Specification Domain Profile about stopTimeout.
  • Added new images for the Domain Manager wizard and updated information about connecting to a running Domain.
  • Added information in the REDHAWK ICD and the SCA Specification about the startorder attribute for Devices.
  • Added startorder information to the REDHAWK Manual.
  • Added Enumerations section to REDHAWK Manual to explain the generation of enumerated values for Component properties.
  • Updated REDHAWK Enterprise Integration User Guide RedhawkPort and RedhawkApplication information for REDHAWK Driver and REDHAWK REST.
  • Updated documentation to explain how to browse for and clone additional Component and Device Properties.
  • Updated images for new DCD editor and new Node wizard and modified information to include new Services option.
  • Moved the Working with the Shell section in the Getting Started chapter of the REDHAWK Enterprise Integration User Guide. It is now the Working with the Shell chapter located later in the manual, and the Getting Started chapter includes a link to it.
  • Added information in the REDHAWK ICD and the SCA Specification about the behavior of write-only FEI allocation properties.
  • Fixed trivial grammar issue in Logging Configuration Plugin Appendix.
  • Added a note about avoiding reserved names in the REDHAWK IDL Project section of the REDHAWK Manual.
  • Updated installation instructions to include RPM that installs the GPG key.
  • Updated the Downloads page to support both LTS and Beta Series of REDHAWK.
  • Added documentation for configuring the REDHAWK Integration assets with JacORB.
  • Added domainName information to REDHAWK Connector and REDHAWK Camel documentation. Corrected base URI information, defined nameserver, and added connectionName information to REDHAWK REST documentation.
  • Modified introductory text for RedhawkPort interface code examples.
  • Added documentation about managing GPP BUSY state.
  • Added a Components Tab section in the Waveforms chapter to document the new Components tab in the SAD editor.
  • Updated REDHAWK Enterprise Integration User Guide to include code examples for ConnectionManager, Logging, and AllocationManager.
  • Updated REDHAWK Enterprise Integration User Guide code examples of EventChannelListener functionality.
  • Fixed display of level 5 headings.
  • Updated Converting Complex Data in C++ and BulkIO High-speed data sections of User Manual.
  • Updated the REDHAWK SCA and ICD documents to describe duplicate Device and DeviceManager registration behavior.
  • Updated the REDHAWK SCA and ICD documents to describe Application release upon Device and Service unregistration.
Assets 20

@ryanbauman ryanbauman released this Oct 2, 2017 · 21 commits to master since this release

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 Device files when browsing the Sandbox file manager.
  • The release field in spec files created for Waveforms and Nodes is now correct.
  • Corrected a potential code freeze when the IDE loses contact with a connected Domain.
  • Corrected issues with UI themes in the REDHAWK Explorer product.
  • A superfluous ODM event channel is no longer created when the display name differs from Domain name.
  • Corrected some issues with product branding.
  • Corrected an issue with CSS themes.
  • Corrected a copyright notice about Eclipse software.
  • Fixed issue with a ConcurrentModificationException occassionally occurring when using the “Monitor Ports” functionality.
  • The icon for the PRF editor was corrected.
  • Message is now always a selectable kind type for Struct Properties.
  • Corrected a link in the REDHAWK help that was not working.
  • Fixed issue where Waveforms with external Ports were not being removed from the REDHAWK Explorer view on terminate.
  • Fixed issue where the IDL Selection Wizard filter stopped working when the Show all interfaces button was checked.
  • The OSSIEHOME Eclipse variable should not be expanded in the IDL project’s .ecpproperties file.
  • The connect wizard now works with Waveforms’ external Ports.
  • When launching a Node on an existing Domain, the IDE now uses the Domain name instead of the Domain’s display name.
  • Allocation IDs generated in the FEI usesdevice wizard of the SAD Diagram no longer contain user names.
  • Removing a Device/Service instantiation removes the componentfile element from the DCD XML if it is not needed.
  • Component project’s Generator combo box only displays applicable code generators.
  • UsesDevice passes validation with any combination of accepted Properties.
  • The Sandbox Chalkboard now shows as stopped if all Components in it are released or terminated.
  • Improved how HostCollocations are handled by the diagram layout algorithm.
  • A race condition was corrected that allowed a new project to be created with an invalid name.

Special Resolutions

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

  • Won’t Fix

    • The IDE Help REDHAWK Content is not the released version of the documentation - The IDE Help REDHAWK Content includes the documentation during the IDE build process; therefore, the released version of the documentation cannot be included at that time.
  • Duplicate

    • Hide the create control panel toolbar button for Shared Libraries (softpackage) projects - Duplicate of IDE-1958 (Control panel button shown when editing shared library in SPD editor).

Documentation Improvements/Fixes

The following documentation new features/improvements/fixes were completed in REDHAWK 2.0.7.

  • Updated installation instructions to include RPM that installs the GPG key.
  • Updated the Downloads page to support both LTS and Beta Series of REDHAWK.
  • Added documentation for configuring the REDHAWK Integration assets with JacORB.
  • Added domainName information to REDHAWK Connector and REDHAWK Camel documentation. Corrected base URI information, defined nameserver, and added connectionName information to REDHAWK REST documentation.
  • Updated REDHAWK Enterprise Integration User Guide RedhawkPort and RedhawkApplication information for REDHAWK Driver and REDHAWK REST.
  • Added remoteDomainManagers to the REDHAWK ICD.
  • Added documentation about managing GPP BUSY state.
  • Updated FEI Allocation Wizard Tuner Allocation dialog screenshot and revised text to include new Run in background checkbox.
  • Updated REDHAWK Enterprise Integration User Guide to include Code Examples for ConnectionManager, Logging, and AllocationManager.
  • Updated REDHAWK Enterprise Integration User Guide code examples of EventChannelListener functionality.
  • Updated procedure, Using the FEI Wizard to Create an FEI Device, to include the Setup Code Generation dialog and added screenshot.
  • Updated Host Collocation procedure and replaced screenshots to correctly display collocation name created when adding a collocation.
  • Updated screenshot of SPD editor Properties to correctly display a drop-down for the “Kind”.
  • Updated Converting Complex Data in C++ and BulkIO High-speed data sections of User Manual.
  • Added information to explain that octave Component numerical properties are treated as complex.
  • Corrected property definition shown in code for multi-out Ports by removing kind elements that were underneath the simple elements.
  • Added BurstIO Section to the REDHAWK ICD.
Assets 19
Pre-release
Pre-release

@ryanbauman ryanbauman released this Aug 9, 2017 · 19 commits to master since this release

REDHAWK Release Notes, Version 2.1.1

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 here.
    • 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.
  • Adding the API for a new type of tuner, a scanning Device.
  • 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 Property change events and can be queried from Components/Devices with the id QUERY_TIMESTAMP, which is useful when synchronizing the state of the system. The new type of Property 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 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.
  • Extending DeviceManager to call configure() on Services at the time they register. This enables users to implement custom Property handling if so desired.

REDHAWK Systems

  • Changing the default logging directory for omniEvents service to reside in /var/log/omniEvents.
  • 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.
  • Adding support for the state of the Connection Manager and Event Channel Manager to be restored when persistence is enabled.

Project Code Generation

  • Fixing code generators for Port generation of C++ Components to correctly handle data structures returned from methods.
  • Providing functionality to add custom headers to project files when generating code.
  • 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.

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 eventChannelManager, allocationManager, and connectionManager helpers as well as simpler event monitoring.
  • 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.
  • 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.

GPP

  • Improving flexibility to ignore GPP threshold checks when determining if the GPP should go into a BUSY state.

IDE

  • Updating the IDE to use the latest available Eclipse tooling, Eclipse Oxygen.
  • Providing the TM Terminal in the IDE, a full-featured terminal emulator that provides full ANSI cursor control, readline, and coloring.
  • 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.
  • Showing IDL details when Ports are selected in the REDHAWK Explorer view.
  • 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.
  • Providing an option in the IDE to perform a FrontEnd Device allocation in the background to aid developers who are debugging their FrontEnd Devices.
  • Improving the IDE’s Domain refresh logic to prevent the IDE from consuming excessive numbers of threads in some scenarios.
  • Correcting the parsing of some numeric literals in Octave M files.
  • Fixing links in the IDE’s help contents so REDHAWK help now displays correctly when links within the help are selected.

Documentation

  • Adding documentation for developing a logging configuration plug-in that will be used to resolve 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.
  • Revising the BulkIO High-speed data code example in User Manual.

REDHAWK Enterprise Integration

  • 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.
  • Resolving issue when activating local servants for MessageConsumerPort and MessageSupplierPort Java classes

New Features

The following IDE and Core Framework new features were added in REDHAWK 2.1.1.

  • C++ shared address space Components can be launched in debug mode.
  • The configure() method is called when launching Services that support it.
  • Added an icon and the refid of the Uses Device for host collocations with an associated Uses Device reference.
  • The IDE is now built on Eclipse Oxygen, the latest version of Eclipse.
  • When creating a Service project that makes use of the PropertySet IDL interface (either directly or via inheritance), a PRF file is generated.
  • A link is now available in the SPD, SAD and DCD editors to add a header to the project’s files.
  • An optional user-supplied header can now be added to files during the code generation process.
  • A command-line terminal ("TM Terminal") is now available in the IDE and can be opened via Ctrl+Alt+T.
  • Added a Components tab to the SAD editor for editing Component instantiation details.
  • The loggingconfig element can now be edited in the new SAD Components tab.
  • In-editor validation of the logging configuration URI element is now provided in the Components tab.
  • Added support for load and save of the reservation element in SAD files.
  • Components launched in the Python Sandbox have an ID with the pattern similar to the ID when launched in a Waveform (for example, "instance_id:waveform_id").
  • The Python Sandbox function api() uses a pager to display Properties/Ports.
  • The Python Sandbox DataSink object supports a stream API, allowing the DataSink to handle multiple incoming streams and variable SRI.
  • Input Python Sandbox elements (for example, DataSink) can be customized with user-defined sinks.
  • The sb.SRIKeyword function can now support sequence values for keywords as well as simple values.
  • Added queryTimestamp() to the rhtime Python package to make it easier to retrieve the timestamp for the query call.
  • The valid initialization string for utctime properties has been expanded from YYYY:MM:DD::HH:MM:SS.S to include now as a valid value.
  • Added support for loggingconfig element contents when deploying a Component in a Waveform.
  • Capacity reservations can now be added to host collocations, and reservations are checked with the GPP before deployment to avoid oversubscription.

Improvements

The following Core Framework and IDE improvements were completed in REDHAWK 2.1.1.

Core Framework Improvements

  • The Python Sandbox MessageSink includes a getMessages function. When storeMessages is set to True in the MessageSink constructor, getMessages can be used to retrieve the received messages even if a callback is not provided.
  • Added support for a Java debugger (jdb) in the Python Sandbox when launching Components.
  • A throttle option for DataSource and FileSource was added for data to be generated at the given sample rate.
  • The Octave libraries are now located with the octave-config utility, which reduces the time taken to find them.
  • Added tests to verify that the connection manager state is persisted when persistence is enabled.
  • Added support for the state of the Event Channel Manager to be restored when persistence is enabled.

IDE Improvements

  • Improved the REDHAWK Explorer view to include an IDL section in the Properties view for selected Ports.
  • RPM spec files for Waveforms and Nodes are now generated manually.
  • The IDE now performs validation on the Properties assigned to Component/Devices in SAD/DCD files and reports an error if a Property does not exist in the Component/Device’s PRF file.
  • Added a red trash can icon in the Device Manager Sandbox service button pad that terminates services running in the Device Manager Sandbox.
  • Added functionality so delete hotkey now terminates a running Service in the IDE Sandbox.
  • Added validation for the refid attribute of a usesdeviceref in a SAD file.
  • Added functionality to enable FEI allocation to run in a background thread.
  • Modified the icon for terminate so it is now distinct from the icon for stop.

Fixes

The following Core Framework, IDE, and documentation fixes were completed in REDHAWK 2.1.1.

Core Framework Fixes

  • RH::DEPLOYMENT_ROOT for deployed Components is the cache directory, not the working directory.
  • Generated code for FEI Python Devices produces a properly-formed exception when the sample rate, center frequency, or bandwidth requested on the digital tuner control Port is less than 0.
  • Added the function addChannels to the FEI base classes. This function enables the developer to add combinations of tuner types in the same Device. The function setNumChannels is still supported, but its functionality has been replaced by addChannels.
  • Device Manager nodeBooter process no longer prints an error to stdout when a Service is included in the Node.
  • GPP returns the current cacheDirectory and workingDirectory, even when not overridden on the DCD.
  • Most typical shared library Components can be unloaded and relaunched without error. If a library is in use and has been modified, an exception is thrown when trying to create new Components using the library.
  • The function set_rf_flow_id in the Python FEI code generators no longer uses a reserved word as an argument to the function.
  • The Port name is now used as the default name for adding entries into the connection descriptor table.
  • Corrected test that erroneously failed when Java is disabled.
  • When a numerical property is initialized in either the SAD file or the DCD file, if the value contains illegal characters (for example: a, b, x), then the deployment fails.
  • In the Sandbox, connecting a DataSink to an SDDS output Port now will return with a no matching Port exception.
  • On CentOS 7, C++ LoadableDevices no longer throw a CORBA::COMM_FAILURE exception from load() when the file cannot be loaded.
  • Added support to Python parsers for new elements: devicerequires, deployerrequires and usesdeviceref.
  • 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.
  • When the BulkIO queue is full, the Python Sandbox no longer locks up when trying to release stopped Components.
  • Thread management in the Python Component/Device base class is updated to better utilize the processor.
  • Extended kickDomain API to include the ability to change the logging level for Domain and Device Manager processes.
  • Changed runser for omniEvents to omniORB user.

IDE Fixes

  • Package names for Java Components now start with a lower-case letter by default, to adhere to standard Java conventions.
  • In the Component editor, the contents of the XML tabs now reflect all changes made in the other tabs.
  • A race condition was corrected that allowed a new project to be created with an invalid name.
  • Updates to a Device's usagename in the Node editor Devices tab are correctly reflected in the associated Devices table.
  • Services in the Sandbox Device Manager now display in the Sandbox Node Diagram.
  • Domains containing large numbers of Waveforms/Device Managers now re-sort their contents appropriately.
  • When launching a Node on an existing Domain, the IDE now uses the Domain name instead of the Domain's display name.
  • An NPE no longer occurs if the M-file specified for a new Octave project does not contain a function.
  • Ensured that CORBA calls that hang will timeout after a reasonable amount of time.
  • Improved the Domain refresh process to prevent issues with too many threads and multiple simultaneous refreshes of the same object.
  • Prevented the possibility of the IDE using too many threads when there are problems refreshing a domain.
  • IDE Domain/Sandbox refresh code now better responds to cancellation.
  • The CORBA Name Browser view now displays the kind of bound names.
  • The CORBA Name Browser now consistently loads children in the view.
  • Octave functions with arguments that have default values are now created as Properties (instead of Ports) by default in the New Component Project wizard.
  • The IDE promptly displays an error if Octave's include path cannot be found while generating code for an Octave project.
  • Keep tree nodes expanded while navigating the Launch Waveform wizard.
  • The IDE now displays Services in the Target SDR even if they duplicate the ID of another Service the IDE has already loaded.
  • The IDE does not change the DCE ID of a project when it is renamed, which can cause problems if the user installs both the old and new versions of the project in the SDRROOT.
  • The connect wizard now works with Waveforms' external Ports.
  • References to non-existent struct simple properties are now handled gracefully.
  • The editor action bar no longer attempts to load duplicate ActionHandlers.
  • Fixed an occasional NPE that occured when using the Device Manager Explorer diagram.
  • Multi-delete functionality race-condition is now handled gracefully.
  • Corrected a potential code freeze when updating the Domain's Waveform list.
  • The IDE no longer displays a tree expander next to SRI keywords if there are no keywords to display.
  • Clicking the Terminate context menu on the Sandbox Device Manager now terminates its services.
  • Clicking the Shutdown context menu on the Sandbox Device Manager now terminates its services.
  • Resolved issue where services launched via REDHAWK Explorer were receiving duplicate names.
  • The OSSIEHOME Eclipse variable should not be expanded in the IDL project's .ecpproperties file.
  • Read-only Properties of kind 'property' can now be overridden, and their values are passed to initializeProperties() in the Sandbox.
  • Fixed bug that occurred when editing the namespace of existing projects.
  • An error message was sometimes displayed after closing the "Allocate Tuner" wizard.
  • Services launched in the Sandbox Device Manager diagram are now displayed in gray, and their menu options are disabled until they launch and register with the Device Manager.
  • Corrected an inefficient monitoring of Devices by the Device Manager diagrams.
  • Corrected a unit test failure that occurred when building in a docker container.
  • A file descriptor which was being left open is now closed.
  • A code quality issue was corrected.
  • Removed an instance of double-checked locking.
  • Corrected some internal domain model state inconsistencies.
  • Fixed issue where the IDL Selection Wizard filter stopped working when the Show all interfaces button was checked.
  • Fixed issue where Waveforms with external Ports were not being removed from the REDHAWK Explorer view on terminate.
  • Corrected a link in the REDHAWK help that was not working.
  • Message is now always a selectable kind type for Struct Properties.
  • The icon for the PRF editor was corrected.
  • Fixed issue with a ConcurrentModificationException occassionally occurring when using the "Monitor Ports" functionality.
  • Diagrams now open without an error in the REDHAWK Explorer product.
  • Corrected a warning that was logged about a command not having a category.
  • Corrected a copyright notice about Eclipse software.
  • Corrected an issue with CSS themes.
  • Corrected some issues with product branding.
  • A superfluous ODM event channel is no longer created when the display name differs from Domain name.
  • Corrected issues with UI themes in the REDHAWK Explorer product.
  • Corrected a potential code freeze when the IDE loses contact with a connected Domain.
  • The release field in spec files created for Waveforms and Nodes is now correct.
  • The IDE no longer attempts to read Device files when browsing the Sandbox file manager.
  • Corrected a code issue that could have suppressed Sandbox errors.
  • Updated Uses Device icon in the Edit Host Collocation wizard.
  • The BULKIO SRI keyword CHAN_RF is now always preferred to COL_RF for center frequency when plotting.
  • Corrected a rare bug that could cause the content in the pages of an editor to become un-synchronized.
  • Shared address space components were always launched in the Sandbox Chalkboard, but can now be launched in other Sandbox Waveforms as well.
  • Corrected an internal IDE issue that could prevent loading REDHAWK XML.
  • The New Control Panel Project button is no longer displayed when editing a REDHAWK shared library project.
  • Updated a missing environment specification to reflect the requirement for Java 8.
  • Added missing icons in the DCD editor.
  • Corrected internal IDE code to properly indicate when XML validation problems are found.
  • Corrected an NPE that could occur when validating SAD or DCD files with references to non-existent struct sequence Properties.

Documentation New Features/Improvements/Fixes

The following documentation new features/improvements/fixes were completed in REDHAWK 2.1.1.

  • Added Managing Allocations and Managing Connections sections to document new helpers in the Python Sandbox.
  • Corrected property definition shown in code for multi-out Ports by removing kind elements that were underneath the simple elements.
  • Added information to explain that octave Component numerical properties are treated as complex.
  • Corrected SAD file location in the SAD File section.
  • Documented the new createProps function.
  • Documented improved Python Sandbox tooling for new Domain features and resources.
  • Added information to initializing timestamp properties to include the valid value string, "now".
  • Added information to describe how to add headers to files.
  • Updated design-time SAD diagrams showing hostcollocation with usesdevices.
  • Updated screenshots of Overview tabs in SPD, SAD, and DCD editors to show Header link in Project Documentation section.
  • Updated screenshots of Waveform and Node editors and added text to explain button used to generate RPM spec files.
  • Updated screenshot of SPD editor Properties to correctly display a drop-down for the "Kind".
  • Added documentation for capacity allocation on a per-hostcollocation basis.
  • Updated Host Collocation procedure and replaced screenshots to correctly display collocation name created when adding a collocation.
  • Updated procedure, Using the FEI Wizard to Create an FEI Device, to include the Setup Code Generation dialog and added screenshot.
  • Updated FEI Allocation Wizard Tuner Allocation dialog screenshot and revised text to include new Run in background checkbox.
Assets 16

@ryanbauman ryanbauman released this Jul 13, 2017 · 21 commits to master since this release

REDHAWK Release Notes, Version 2.0.6

The effort in REDHAWK 2.0.6 focused on:

  • Initial FOSS Release of REDHAWK Enterprise Integration Assets, which provide the ability to interact with REDHAWK in a JRE environment. The REDHAWK Enterprise Integration Assets include:

    • REDHAWK Driver: Provides simplified access to REDHAWK via standard Java interfaces. This Asset shields all interaction with the underlying REDHAWK Components and provides a simplified API for Java developers interacting with a REDHAWK Domain. The REDHAWK Driver can be leveraged as a standalone Java Archive (JAR) file.
    • REDHAWK OSGi Connector: Implements OSGi’s Managed Service Factory interface to allow users to register pre-configured instances of REDHAWK connections into a Karaf container.
    • REDHAWK REST: Provides a REST Service to command and control a REDHAWK instance.
    • REDHAWK WebSocket: Provides an HTML5-compliant WebSocket implementation that enables the ability to stream data from any REDHAWK BulkIO-enabled Port or Event Channel.
    • Camel REDHAWK: Provides a Camel Component for interacting with a REDHAWK Domain. This Component can be connected with other Apache Camel Components as a data flow solution.

    For more information about the REDHAWK Enterprise Integration Assets, refer to the REDHAWK Enterprise Integration User Guide.

  • Providing diagnostic messages for log4py configuration files that contain errors and adding support to allow line continuation characters in the log configuration files.

  • Improving the IDE's Domain refresh logic to prevent the IDE from consuming excessive numbers of threads in some scenarios.

  • Documenting a publisher/subscriber pattern when accessing an EventChannel from the Domain.

  • Modifying Burst IO implementation so that BurstIO output Ports will only override the BurstSRI mode flag in pushBurst if given std::complex sample data.

  • Ensuring the creation of and appropriate permissions are on the services directory in SDRROOT.

  • Fixing code generators for Port generation of C++ Components to correctly handle data structures returned from methods.

  • Resolving issue when activating local servants for MessageConsumerPort and MessageSupplierPort Java classes.

  • Resolving issue when ossie.utils.log4py.config is imported after ossie.utils.sb. Fixed by CCB-263 (Formatting issues in -logcfgfile causes python devices to crash) and added unit test to address issue when ossie.utils.log4py.config is imported after ossie.utils.sb.

  • Improving documentation of Signal Related Information (SRI).

  • Supporting the default version of Octave available in CentOS 7 (3.8.2).

  • Correcting the parsing of some numeric literals in Octave M files.

  • Resolving issue with the GPP segfaulting when a Component's soft package dependency does not have proper file access privileges.

  • Resolving issue with getStreamDefinition returning a pointer to memory that could be reclaimed during processing, which would invalidate any access through that pointer. The caller now receives a pointer to a copy of a Stream Definition.

  • Correctly computing deployment-specific capacities that manage hardware resource requirements in cases where the Component is part of a host collocation deployment.

  • Updating Contributor License Agreement (CLA).

  • Revising the BulkIO High-speed data code example in User Manual.

  • Updating the Python package to create instances of the same Application for multiple processes or threads without conflicts.

  • Updating the Python Sandbox to make and break connections from multiple threads without conflicts.

  • Addressing numerous bug fixes.

Fixes

The following fixes were completed REDHAWK 2.0.6:

Core Framework Fixes

  • Automake files check for correct range in supported Octave version (3.4+).
  • log4j time formats are processed correctly for resources using Python logging.
  • Namespaced Octave Components are supported.
  • Added creation of sdr/dev/services directory when installing from source or the REDHAWK RPM package.
  • Changed default Node and GPP name to not be the fully qualified Domain name. This is now an option to the gpp_setup script.
  • Fixed issue in test with sequencing of sending and receiving messages.
  • Removed Java test when --disable-java is used when building the Core Framework.
  • When an exception occurs during C++ FEI deallocation, updateUsageState is called to account for the deallocation(s) that succeeded.
  • Fixed issue with C++ FEI Devices for failed allocations. Now, the C++ FEI Device base class returns false when the allocation fails instead of throwing an exception.
  • Fixed logger assignment for StreamContainer class.
  • When the IDL includes a typedef'd parameter as an out parameter, the code generator no longer adds an additional & to the generated Port function.
  • Fixed issues with using empty list as a default parameter assignment.
  • Resolved issue with process exceptions for directories with missing or bad permissions.
  • Resolved issue with corrupted stream definition objects when using getStreamDefinition method.
  • Multiple processes or threads can create instances of the same Application via the Python package.
  • In the Python package, failed connections to Application objects raise a NoMatchingPorts exception that includes the Application name instead of an AttributeError.
  • The Python Sandbox can make and break connections from multiple threads without conflicts.
  • In the Sandbox, connecting a DataSink to an SDDS output Port now will return with a no matching Port exception.
  • RPM spec files for Octave softpkg dependencies only copy the needed .m files. Additionally, the source directory name used on the project for the .m files is not changed during rpm installation.
  • Fixed compilation issue with custom IDL and output Ports.
  • Uncaught IO exceptions from log4cxx library are handled so processes will not terminate.
  • Resolved issue with Application launching during stress tests.

IDE Fixes

  • Package names for Java Components now start with a lower-case letter by default, to adhere to standard Java conventions.
  • In the Component editor, the contents of the XML tabs now reflect all changes made in the other tabs.
  • Updates to a Device's usagename in the Node editor Devices tab are correctly reflected in the associated Devices table.
  • Services in the Sandbox Device Manager now display in the Sandbox Node Diagram.
  • Domains containing large numbers of Waveforms/Device Managers now re-sort their contents appropriately.
  • Port descriptions now display when a Port is selected in any editor.
  • An NPE no longer occurs if the M-file specified for a new Octave project does not contain a function.
  • Ensured that CORBA calls that hang will timeout after a reasonable amount of time.
  • Improved the Domain refresh process to prevent issues with too many threads and multiple simultaneous refreshes of the same object.
  • Prevented the possibility of the IDE using too many threads when there are problems refreshing a domain.
  • IDE Domain/Sandbox refresh code now better responds to cancellation.
  • The CORBA Name Browser view now displays the kind of bound names.
  • The CORBA Name Browser now consistently loads children in the view.
  • Octave functions with arguments that have default values are now created as Properties (instead of Ports) by default in the New Component Project wizard.
  • The IDE promptly displays an error if Octave's include path cannot be found while generating code for an Octave project.
  • Keep tree nodes expanded while navigating the Launch Waveform wizard.
  • The IDE now displays Services in the Target SDR even if they duplicate the ID of another Service the IDE has already loaded.
  • The IDE does not change the DCE ID of a project when it is renamed, which can cause problems if the user installs both the old and new versions of the project in the SDRROOT.
  • References to non-existent struct simple properties are now handled gracefully.
  • The editor action bar no longer attempts to load duplicate ActionHandlers.
  • Fixed an occasional NPE that occured when using the Device Manager Explorer diagram.
  • Corrected some XML validation for "affinity" and "componentproperties" in SAD and DCD files.
  • Improved the error message for a failed domain launch to provide more detail and troubleshooting information.
  • Properties of type ulonglong are now passed to resources launched in the Sandbox.
  • Multi-delete functionality race-condition is now handled gracefully.
  • Corrected a potential code freeze when updating the Domain's Waveform list.
  • The IDE no longer displays a tree expander next to SRI keywords if there are no keywords to display.
  • Some code associated with Device Manager diagrams was corrected to prevent potential future bugs.
  • Clicking the Terminate context menu on the Sandbox Device Manager now terminates its services.
  • Clicking the Shutdown context menu on the Sandbox Device Manager now terminates its services.
  • Resolved issue where services launched via REDHAWK Explorer were receiving duplicate names.
  • Read-only Properties of kind 'property' can now be overridden, and their values are passed to initializeProperties() in the Sandbox.
  • Fixed bug that occurred when editing the namespace of existing projects.
  • An error message was sometimes displayed after closing the "Allocate Tuner" wizard.
  • Services launched in the Sandbox Device Manager diagram are now displayed in gray, and their menu options are disabled until they launch and register with the Device Manager.
  • Corrected an inefficient monitoring of Devices by the Device Manager diagrams.
  • Corrected a unit test failure that occurred when building in a docker container.
  • A file descriptor which was being left open is now closed.
  • A code quality issue was corrected.
  • Removed an instance of double-checked locking.
  • Corrected some internal domain model state inconsistencies.
  • Diagrams now open without an error in the REDHAWK Explorer product.

Documentation Fixes

  • Fixed typos in the Managing and Defining Properties section.
  • Updated links on the Documentation web page to point to GitHub.
  • Corrected SAD file location in the SAD File section.
Assets 16
You can’t perform that action at this time.