Skip to content

Releases: RedhawkSDR/redhawk

REDHAWK 2.1.1

09 Aug 19:00
Compare
Choose a tag to compare
REDHAWK 2.1.1 Pre-release
Pre-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...
Read more

REDHAWK 2.0.6

13 Jul 22:53
Compare
Choose a tag to compare

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 in...
Read more

REDHAWK 2.1.0

06 Apr 21:50
Compare
Choose a tag to compare
REDHAWK 2.1.0 Pre-release
Pre-release

REDHAWK Release Notes, Version 2.1.0

The effort in REDHAWK 2.1.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.
  • 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/develop-2.1/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.
  • 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 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.
  • 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 eventChannelManager, allocationManager, and connectionManager helpers as well as simpler event monitoring.
  • Adding functionality to allow Components that have a usesdevice dependency to now be launched on the same host (i.e., 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 new concurrent logging appender for C++ Components to improve readability of logging messages when multiple processes are writing to the same log file.
  • 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.
  • Documenting a publisher/subscriber pattern when accessing an EventChannel from the Domain.
  • Documenting available affinity processing directives when deploying Devices, Services, and Components.
  • Adding support for the REDHAWK Core Framework, IDE, assets, and new REDHAWK projects to now compile against and run on Java 8.
  • Extending DeviceManager to call configure() on Services at the time they register. This enables users to implement custom Property handling if so desired.
  • Resolving issue when activating local servants for MessageConsumerPort and MessageSupplierPort Java classes.
  • 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.
  • Improving documentation of Signal Related Information (SRI).
  • Updating Contributor License Agreement (CLA).

New Features

The following features were added in REDHAWK 2.1.0:

Core Framework Features

  • Improved DeviceManager to call initalizeProperties or configure for Services that implement the CF::PropertyEmitter or CF::PropertySet interface.
  • Added a rolling file appender that synchronizes access to a central file from multiple processes.
  • Added support to allow executable Devices to restrict Component deployments during Application deployment.
  • Added the implicit property QUERY_TIMESTAMP to all Components and Devices. When this property is queried, a UTCTime timestamp is returned. Furthermore, the PropertyChangeEvent has been extended with the member timestamp, also of UTCTime type.
  • Added the ossie.utils.rhconnections package to make it simpler to generate endPoints for interactions between the Python Sandbox and the connectionManager.
  • Added an allocations module to the Python ossie.utils module. This module contains a createProps function that performs type matches between a Device's property set and the property set provided.
  • Improved the usability of the Event Channel Manager in the Python package.
  • Added new helpers in the Python Sandbox package to listen to Property change events.
  • Added capability for the collocation of a usesdevice relationship and a Component on the same host.

IDE Features

  • Updated the IDE's Event Viewer to provide additional clarity when displaying information for all event types. The Event Viewer displays a summary of basic event information, while the Properties view displays full details for a selected event.
  • Added IDE support to generate new C++ Components as shared address space Components.
  • Added the ability to launch shared address space Components in the Sandbox.
  • Added a disconnect button to the IDE Event Viewer, which enables users to stop the viewer from updating with new events, while still persisting existing information.
  • Added support to display devicerequires/deployerrequires information for runtime Components/Devices in the Advanced tab of the Properties view.
  • Added support for load and save of the deployerrequires element in DCD files and the devicerequires element in SAD files.
  • Added support for load and save of the usesdeviceref element in SAD files.
  • Added runtime support for viewing/changing timestamp Properties.
  • Added design-time support for editing timestamp Properties.
  • Added support to display the new precision timestamp associated with a PropertyChangeEvent.
  • Added editor support to specify the requirements of the GPP that launches a Component.
  • Added editor support to filter Components that can be launched on a Device.
  • Added support for editing Devices collocated with a host collocation.

Improvements

The following improvements were added in REDHAWK 2.1.0:

Core Framework Improvements

  • Extended Sandbox DataSource to accept SRI and TimeStamp objects when push method is called.
  • Moved start and stop Port calls from generated code into base classes.
  • Improved sb.launch() to accept a single dictionary for all Property overrides and no longer require the user to distinguish between command line and initialization.
  • Added support for new C++ Components to be created as shared libraries, which allow multiple Components to be deployed into the same process and enable faster, lower-cost I/O.

IDE Improvements

  • Added validaton for SPD files to check that referenced shared library Component files are present.
  • Enhanced the IDE to recognize shared address space Components.
  • Added support to display event messages when event channels are added or removed.
  • Added the ability to display PropertyChangeEvent in the Event Viewer.

Fixes

The following fixes were completed REDHAWK 2.1.0:

Core Framework Fixes

  • Message supplier Ports now support the CF.QueryablePort interface, which allows querying the current set of connection IDs and connected objects.
  • If errors are encountered when installing an Waveform file, the ApplicationFactory will now throw an ApplicationInstallationError with the details of what error occurred.
  • Improved error message when using the Python package to attach to a named domain when the name service has a stale reference to the missing Domain Manager.
  • In Python FEI Devices, the default Port name used for matchAllocationIdToStreamId is populated correctly.
  • Fixed a series of problems with Python FEI base classes, including :
    • Added validateRequestSingle and validateRequestVsDeviceStream to remap the Python base API close to the Java and C++ base API.
    • In Python FEI Devices, when the user code generates an exception, that exception is correctly logged.
    • When Python FEI Devices fail to allocate resources, they return a correctly-formatted exception.
    • Resolved issues with listener management in Python FEI Devices.
    • validateRequestVsRFInfo correctly scales the minimum sampling rate for scalar or complex data.
    • Fixed typo in error messages for Python FEI Devices.
  • Added creation of sdr/dev/services directory when installing from source or the REDHAWK RPM package.
  • Python FEI Device getTunerStatus call returns without errors.
  • If the Java minimum is not met, the automake configure script exits before generating the Makefile.
  • 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 a...
Read more

REDHAWK 2.0.5

24 Feb 17:43
Compare
Choose a tag to compare

REDHAWK Release Notes, Version 2.0.5

The effort in REDHAWK 2.0.5 focused on:

  • Maintaining the correct time stamp when pushing data from the Sandbox DataSource.
  • Improving a Component's response to messages irrespective of whether or not the Component is started or stopped.
  • Improving FileSink support for framed data and timecode with BLUE file output.
  • Improving the handling of missing event message fields in C++ and Python.
  • Ensuring external Port names are recognized.
  • Addressing numerous bug fixes.

Fixes

The following fixes were completed REDHAWK 2.0.5:

Core Framework Fixes

  • Component start order is now honored when calling the Sandbox's loadSADFile method.
  • Reduced the number of messages indicating a bad connection when a remote Component dies and a connection to it exists.
  • The behavior for mismatch between the message structure being received and the expected structure has been harmonized across C++, Python, and Java.
  • If DomainManager is not compiled with persistence enabled, persistence flags are now ignored.
  • Removed sending SIGQUIT during the terminate sequence for Components.
  • Connection issues for BulkIO Ports are logged as errors, and repeating messages will be suppressed once a threshold has been achieved.
  • Python BulkIO Ports now report error messages during pushPacket and pushSRI operations.
  • For Octave Components that add shared libraries, the library's implementation reference is correctly referenced when generating a Component.
  • Multi-out Ports issue an EOS when listeners are deallocated.
  • Added default resolution of SDRROOT target installation to be /var/redhawk/sdr if a user's shell environment configuration is incomplete.
  • log4j time formats are processed correctly for resources using Python logging.
  • Removed obsolete comments that no longer applied.
  • The Domain's ConnectionManager will remove connections from its pending list if connection deferral is not allowed.
  • When specifying a user when daemonizing nodeBooter, all the user's groups (primary and secondary) are associated with the process. Also, groups can now be defined as comma-separated names on the group switch when starting nodeBooter.
  • On startup, calls to the configure function on the Component or Device only occur if there is at least one Property to update.
  • C++ BulkIO output Ports now report the correct bits per second in statistics in all cases.
  • The redhawk module in Python has a complete replication of the CORBA interface for the remote object at a base level (not just on the ref member).
  • When DeviceManager is launched and DomainManager is not available and persistence is enabled, Name Service is populated with the DeviceManager, Device, and Service information.
  • Added the ability to specify a wait time for client calls from the DomainManager to remote servants when an underlying mutex is locked and restricts other activities using the DomainManager.
  • Java Components using org.ossie.events.Subscriber class can register a callback interface when new event messages arrive.
  • FileSink sets the subsize field in BLUE file headers to match the frame size when the input stream is two-dimensional.
  • FileSink formats framed data correctly with BLUE file output.
  • The Sandbox's BlueFileReader can handle two-dimensional (framed) data in the form of type 2000 files.
  • The Sandbox's DataSink can handle framed data of type 'char'.
  • The bluefile module properly chunks framed two-dimensional (framed/type 2000) data. It also properly handles complex data when it is two-dimensional.
  • FileSink now uses the timestamp of the first BulkIO packet to set the header timecode for BLUE file output.
  • At the end of BLUE files, FileSource would sometimes send a zero-length packet with no EOS and a zero-length packet with EOS set. The zero-length packet with no EOS was removed.
  • Eclipse plotting widgets can be started from the Python Sandbox.
  • The default implementation for retrieve_records, retrieve_records_by_date, and retrieve_records_from_date on the logging interface for C++ Components and Devices no longer segfaults when executed.
  • Codegen testing now evaluates all unit tests for namespaced Components.
  • Namespaced Waveforms can now be launched in the Sandbox using the fully-qualified namespaced name.
  • If a Component was shutdown while pushing data, it would occasionally deadlock. This race condition was removed.
  • When pushing data, the Sandbox DataSource advances the time stamp according to the initial time and the number of samples sent.
  • If an FEI Device contains input BulkIO Ports, releasing a tuner does not cause an error message.
  • When a BulkIO input stream is disabled, packets for that stream with EOS set are handled and reported correctly.
  • Components in Java, C++, and Python respond to messages irrespective of whether or not the Component is started or stopped.
  • Conversions of header keywords between BLUE file and REDHAWK SRI are handled properly.
  • Deallocation of an FEI controlling allocation ID cannot be done using a listener allocation structure.
  • The SRI changed status is provided for the first packet received using the stream API.
  • An application's getPortSet() method uses the external Port name provided in its SAD file.
  • Empty directories are not created in the GPP's cache directory when log4py FileAppender is configured with the absolute file path.
  • When a BulkIO input stream receives an EOS, the input Port's getCurrentStream() now always returns the stream once to give the caller a chance to check for EOS.
  • Fixed possible Python FEI Device deadlock issue when responding to requests (for example, getTunerEnable, allocateCapacity).

IDE Fixes

  • Reworked how the IDE diagrams add actions to toolbars and menus, which resolves the handler conflict errors that were thrown when multiple diagrams were opened concurrently.
  • In a diagram, Port modifications to existing Components are now displayed the next time the diagram is opened.
  • When marking Ports as external in a SAD diagram, if external Ports are created with the same name, the names are suffixed to make them unique.
  • A domain Waveform opened with the Chalkboard editor now is in sync to reflect the same status changes (for example, start and stop) in the Explorer view.
  • When creating FEI Devices, the pages of the New Project wizard now include the setup code generation page for C++ and Python.
  • The x-axis on plots adjusts to changes in the CHAN_RF and COL_RF Properties in SRI.
  • The PROFILE_NAME argument is now correct for resources launched in the Sandbox.
  • In the Properties view for an FEI tuner, the title was adjusted to be the tuner ID, and the tab name was changed to "Properties".
  • The naming context names that the IDE uses in the Sandbox now are the same as the core framework at runtime.
  • Newly created projects are properly configured so that projects now report warnings and errors in the Problems view for Redhawk XML files.
  • The status for an object in a domain is now updated when its profile (XML) is loaded.
  • The CORBA name browser view now displays names that contain periods.
  • The Sandbox diagrams always show the correct state for a Component or Device that was launched while the diagram is open.
  • Corrected code that was being run in an incorrect thread inside the IDE.
  • Namespaced Java Components in the user's workspace can now be launched in the Sandbox.
  • The logging menu is not shown for Waveforms.
  • Fixed an NPE in the SAD editor that occurred when an external Port in the SAD XML referenced a non-existent Component instantiation.
  • Fixed an NPE that occurred if a Waveform with an event channel connection was launched in the Sandbox.
  • Fixed an NPE when generating code for a project that was caused by a corrupt configuration file.
  • Fixed issue causing an internal IDE error when generating code for an Octave Component and Octave was not installed.
  • An internal IDE model detail is no longer shown when browsing a componentInstantiation.
  • The same Component can now be launched from both the workspace and the SDRROOT simultaneously in a Diagram.
  • Adding a FrontEnd Uses Device to a Waveform no longer causes an error when saving the Waveform.

REDHAWK 2.0.4

04 Jan 20:44
Compare
Choose a tag to compare

REDHAWK Release Notes, Version 2.0.4

The effort in REDHAWK 2.0.4 focused on:

  • Adding support for the CentOS 7 operating system.
  • Updating the REDHAWK IDE to require Java 8.
  • Adding support for two new Core Assets, SinkSDDS and SourceSDDS, which convert between SDDS and BulkIO data formats.
  • Adding messages to indicate to the user the reason why the GPP is busy.
  • Adding more IDE XML validation to help users catch issues sooner when designing projects.
  • Corrected issues with Redhawk-generated build scripts that prevented errors from being displayed.
  • Adding ’Connect’ and ’Show Properties View’ in the Graphiti diagram context menus.
  • Adding GPP label to the Domain Manager log message when deploying Components or Waveforms to enable quick identification of which GPP the Domain Manager is attempting to launch Components on.
  • Improving the REDHAWK Explorer product to use the new Graphiti diagrams introduced in the REDHAWK 2.0.0 IDE.
  • Improving IDE namespace support to give users an error if they have multiple resources with conflicting IDs in the SDRROOT.
  • Addressing numerous bug fixes.

Core Framework API Changes

The following API changes have been made.

  • GPP sys_limits structure Property identifiers have changed. This is a readonly Property reported by the GPP during a query call. The resulting sys_limits Property identifiers returned from the query call now correspond to the New ID column.
Old ID New ID
current_threads sys_limits:current_threads
max_threads sys_limits:max_threads
current_open_files sys_limits:current_open_files
max_open_files sys_limits:max_open_files

Improvements

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

Core Framework Improvements

  • Improved build support files so IDL references in an IDL project can be listed in any order.
  • Improved support for Components with multiple implementations. When the local file for a secondary implementation is missing, that implementation is ignored.
  • Fixed omniEvents to run on CentOS 7.

IDE Improvements

  • Improved XML validation.
  • Improved namespace support to display an error when multiple elements in the SDR root have the same DCE ID.
  • Improved Graphiti diagram context menus by adding Connect option.
  • Improved warning dialogs by adding warnings for deallocate all and New Control Panel.
    el6-i686
  • Added a warning message for properties that have kind message that are not a struct.

Fixes

The following IDE, Core Framework, and Core Asset fixes were completed in REDHAWK 2.0.4.

Core Framework Fixes

The following Core Framework bug fixes were completed in REDHAWK 2.0.4.

  • If the Sandbox is started when a plot is created, the plot’s initial state is set to started.
  • Python SPD parser correctly exports capitalization for softpkg.
  • Python Codegen can handle camel-case structure definitions.
  • Exceptions in port_impl code are now passed to the caller instead of ignoring them.
  • When a call to runTest on the Application has unknown properties, it lists the unknown properties.
  • In GPP, merged create_node.py and devconfig.py into gpp_setup script, updated the install scripts to use gpp_setup, changed the model to REDHAWK GPP, and updated GPP properties to 2.0 property kinds.
  • Better error is given when redhawk.attach is invoked with no visible Domains.
  • Improved error message when missing dependency is a softpkg.
  • Java unit tests are disabled when the core build does not have Java enabled.
  • Python Sandbox createApplication call includes Device assignment sequence as an argument.
  • Fixed PartialConfiguration error for init of properties with kindtype of both property and allocation.
  • Deallocating a listener sends an EOS out of the BulkIO Port.
  • If the Device Manager does not have write access to the cache directory, it logs an error instead of having a segmentation fault.
  • Corrected giop:unix endPoint format in rh_net_diag utility.
  • Added the name of the missing file to the error message when parsing spd files.
  • Sandbox DataSDDSSink stores the latest SRI received.
  • Code generator correctly handles programming language element in the implementation element.
  • SDDS Ports push SRI on new connections.
  • If omniEvents is stopped, and the Domain is shutdown, a correct message is generated.
  • Added namespace qualifiers for sys_limits structure property members in GPP.
  • Enhanced error handling for problems during Device registration.
  • Python library does not release Applications on exit by default.
  • External property overrides are allowed for loadSADFile call in the Sandbox.
  • Sandbox loadSADFile allows for namespaced property names.
  • Default values are correctly generated for sequence of structures in C++.
  • Calls to FileSystem::exists() no longer cause the Domain Manager process to abort.
  • Fixed issue with GPP statistics type conversion for large numbers that resulted in occasional errors in the usage statistics.
  • Spec file for namespaced Components, Devices, and Services includes complete directory paths.
  • Fixed compatability issue with partial configuration during initializeProperties.
  • Missing read permissions on Component installations no longer crash the Domain Manager.
  • Python FEI infrastructure matches C++ FEI infrastructure.
  • Java FEI infrastructure matches C++ FEI infrastructure.
  • Fixed the proc function in the Python Sandbox by updating DataConverter to rh.DataConverter.
  • Unit tests do not deadlock on 32-bit CentOS 6.
  • cleanomni script correctly determines root privileges.
  • cleanomni only attempts to start omniEvents once if the omniEvents service startup fails.
  • Tests run manually (via runtests.py) and tests run as part of the continuous integration infrastructure use the same test environment.
  • Readonly property kind properties are initialized through initializeProperties.
  • DeviceManager can correctly parse Device spd files when they contain dependency elements.
  • Automake warnings are not issued when compiling on CentOS 7.
  • In Python ExecutableDevice.terminate(), wait until the entire process group has exited before checking the process status and returning.
  • rhlauncher has the updated REDHAWK logo.
  • omniEvents waits for omniNames to be ready before deploying.
  • Components launch in the Sandbox with GNU debugger.

Special Resolutions

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

  • Won’t Fix
  • Core framework runtime failure if basic Components are not installed - The Sandbox requires the DataConverter Component be installed for format conversion.
  • Limited IDL path search for IDL - Previous code generators did not allow for additional search paths. This has been resolved in newer releases.
  • Java Devices do not deal well with a NULL IDM channel - The normal Java Device startup will handle all Null Pointer Exceptions (NPE). Developers are encouraged to use Publisher and Subscriber interfaces and not the internal connectEventChannel(), which will cause an NPE.
  • Sandbox initial configure call includes execparams - execparam and configure are both deprecated. Therefore, changing the behavior would not be beneficial because new Components are not created with these properties, and there is a chance that existing Components would be broken.
  • C++ Appender prints error on stderr - This behavior is intrinsic to log4cxx. The message is sent during a reconfiguration request when an error is encountered.
  • Incorrect use of daemon function in omniNames init.d script - This defect is part of the EPEL distributed package of omniOrb.
  • Fixed By Other Issue
  • Python service generator throws an exception with non-namespaced IDL interface - Fixed by REDHAWK release 1.9.
  • Cannot Reproduce
  • Python Device Codegen uses incorrect name in Makefile.am.
  • Multiple message out Ports in C++ causes malformed port_impl.h.
  • If more than one Application is created with the same name using createApplication on the Python package, the tracking of the Applications breaks.
  • Duplicate
  • Spelling error in Application error message - Duplicate of CF-1550 (Log message says “Abormal”).
  • SAD validation fails when an implementation is missing - Duplicate of CF-1556 (Improved support for Components with multiple implementations. When the local file for a secondary implementation is missing, that implementation is ignored.).

IDE Fixes

The following IDE bug fixes were completed in REDHAWK 2.0.4.

  • FindBy Wizards no longer allow mulitple Ports with the same name to be added.
  • Fixed null pointer exception (NPE) with SAD file properties and assembly controller actual properties.
  • Ports no longer can be added for Service projects with an interface that does not extend CF/PortSupplier.
  • Indexer now imports BurstIO information.
  • Fixed issue causing an error when deallocating a Python FEI Device.
  • FindBy direct edit dialog only enables the Delete button after a Port is selected.
  • Graphiti diagrams were refactored between repositories.
  • Fixed NPE with SAD referencing Port names that do not exist when launching in Sandbox.
  • Corrected warning message displayed when overwriting modified files.
  • Property View inner tab name now always displays “Properties”.
  • An error no longer occurs when invoking shutdown on Sandbox Device Manager.
  • REDHAWK IDE RPM now requires necessary development packages.
  • Sources in the Makefile.am.ide are ordered lexicographically.
  • Code generation no longer unsets C++ build exclusions.
  • Devices launched in Sandbox are now configured during registerDevice.
  • Toolbar buttons (start/stop/release) are now enabled for local ...
Read more

REDHAWK 2.0.3

07 Oct 15:32
Compare
Choose a tag to compare

REDHAWK Release Notes, Version 2.0.3

The effort in REDHAWK 2.0.3 focused on fixing the following bugs.

  • Improvements to GPP automatic resource monitoring caused a memory leak.
  • Incorrect return type in the GPS interface implementation of FrontEnd Interfaces.
  • Python Devices failed to launch when a logging config file is specified.

Fixes

The following Core Framework fixes were completed in REDHAWK 2.0.3.

  • The correct current logging level is now reported in the Logging Level wizard in the Sandbox.
  • There is no longer a memory leak in the GPP.
  • gps_time_pos for the C++ GPS Port implementation returns the correct type.
  • C++, Python, and Java uses FEI control Ports do not fail silently when the remote Device connection fails.
  • Methods in fe_tuner_port_impl.h no longer fail and now return initialized values.
  • Python FEI Ports now generate valid return objects for FEI Ports.
  • Java FEI Ports compile for all FEI Ports.
  • _pid is now populated on Components launched through the Sandbox.

REDHAWK 2.0.2

01 Sep 16:25
Compare
Choose a tag to compare

REDHAWK Release Notes, Version 2.0.2

The effort in REDHAWK 2.0.2 focused on:

  • Improving how error messages are displayed to the user in the IDE.
  • Adding new abilities to interact with logging for Components and Devices in the IDE.
  • Providing better awareness of resource utilization on the host computer.
  • Addressing numerous Discrepancy Reports (DRs).
  • Adding better support for creating FEI Devices written in Python.

New Features

The following IDE and Core Framework new features were added in REDHAWK 2.0.2:

  • Enhanced IDE to use new Domain Manager method for launching Waveforms.
  • Added IDE support for setting a running Component’s logging configuration.
  • Added IDE support for viewing a running Component’s logging events.
  • Added a Property on the GPP that provides a per-Component GPP resource utilization.

Improvements

The following IDE and Core Asset improvements were completed in REDHAWK 2.0.2:

IDE Improvements

  • Improved error messages when working with Properties.
  • Improved error messages when launching resources in the Sandbox.
  • Improved error messages when start/stop fails for Components.
  • Improved error messages for the SCA file system.

Core Asset Improvements

  • Updated UHD driver to version 3.7.3.

Fixes

The following IDE, Core Framework, Core Asset, and documentation fixes were completed in REDHAWK 2.0.2:

IDE Fixes

  • Source is no longer ignored in org.ossie bundle.
  • Fixed domain loading on Windows.
  • ScaItemProviderAdapterFactory is always disposed.
  • Fixed null pointer exception (NPE) in editors.
  • Renamed context menu “Apply Horizontal Tree Layout” to “Arrange Diagram”.
  • Fixed issues with SCA file stream cleanup.
  • When launching a Domain Waveform, fixed error so Waveform editor opens.
  • Fixed issue causing stack trace errors to be displayed when refreshing Properties.
  • Properties without a kind or configurationkind are now considered .
  • Octave Component can be launched in debug mode.
  • Event channels and Waveform containers can be refreshed.
  • When a runtime explorer Node diagram is open and connections are created, this no longer causes an NPE.
  • Runtime explorer Node diagrams show connections.
  • Multiple Sandbox Waveforms with similar names can be opened.
  • configure Properties are now set for Devices launched from the Python Sandbox.
  • When loading Domain items, improved error details provided in Explorer View.
  • Status details will not display for errors on the file manager.
  • In File Manager, CORBA file objects are deactivated after they are closed.
  • Opening a Node diagram containing a Device/Service not in the SDR no longer causes an NPE.
  • Tooltips for long Property descriptions are displayed.
  • Deleting a Component from the SAD diagram deletes its external Properties or external Ports.
  • When editing Nodes, unique componentinstance id’s are created for Devices/Services.
  • New IDL projects have include paths to omniORB COS IDLs.
  • IDE can now connect to and display content from multiple Domains with the same name.
  • OCTAVE_PATH is now set in the Chalkboard for softpkg dependencies.
  • SPD editor Overview tab now displays correct resource type.
  • Environment variable paths are now properly set for resources launched in the Chalkboard.
  • Editing a Find By name no longer creates a duplicate item in the diagram.
  • DataList correctly displays complex data streams.
  • usesdevice elements type attribute is optional.
  • Error messages are displayed in the Launch Domain Manager Wizard.
  • Improved performance of Node Explorer diagram.
  • Connections created in design-time diagrams can be undone.
  • Improved Waveform Explorer diagram.
  • In a runtime diagram, fixed error so cannot undo release/terminate of Component.
  • Launch Waveform Wizard displays overwritten Properties.
  • Connections from Java Components are displayed when diagrams are opened.
  • Sequence values in Runtime Property dialog can be deleted when in edit mode.

Core Framework Fixes

  • Added Python helper that simplifies the creation of SRI objects for FEI Devices.
  • Python FEI Devices now contain extended mutex control over control member variables in the tuner base class.
  • Python FEI Devices do not call deviceDeleteTuning when deallocating a listener.
  • Python FEI Devices can deallocate a listener from the IDE.
  • Python FEI Devices Ports contain the correct reference to the parent Device object.
  • Python FEI tuner control Ports implement the correct inheritance hierarchy.
  • In Python Components and Devices, using CF.LogConfiguration.setLogConfig(String) now correctly sets the log configuration.
  • The Java logging appender only prints an error on stderr when an error condition exists.
  • C++ Appender now prints debug info to the log file instead of stdout.
  • Property initialization of struct sequence no longer triggers Property change listener.
  • C++ AnyUtils can convert strings to octet.
  • BulkIO chunking accounts for subsize, aligning subsize boundaries.
  • The Connection Manager allows Component to Component connections.
  • The GPP Property XML file now includes mcastnicEgressFree.
  • In a multi-system REDHAWK environment; when restarting a GPP after the restart of a Domain Manager, with persistence enabled, the GPP no longer aborts on startup.
  • The GPP reports correct number of CPUs on all supported versions of CentOS.
  • When the Domain Manager is terminated normally, the event channels are cleaned up from the name service.
  • The Event Channel Manager honors the requested registration ID.
  • Event channels can register with the PropertyListener.
  • log4py can create directories when specified in the log configuration file.
  • FileManager does not fail when calling getMounts.
  • Java Port objects match the reported object in the connection description.
  • In the IDE Python Sandbox, sb.show() Component connections displays the correct results.
  • In the Python Sandbox, connection IDs can be reused.
  • Removed superfluous warning from libnuma on 32bit VMs.
  • Making connnections between GPS Ports in Java Devices no longer causes an NPE.
  • SIGCHLD is properly propagated in GPP.
  • In Python Devices and Components, exceptions in the process function are logged.
  • Extended the start call on Application time out.
  • Python Sandbox launch function works as expected in the IDE.
  • Python Sandbox no longer uses path to identify resource type.
  • Python Sandbox loadSADFile works correctly when Components have Properties with special characters.

Core Asset Fixes

REDHAWK Basic Components

  • DataConverter improved unit tests to include unscaled unit tests.
  • DataConverter eliminated data distortion for Short to Float and Float to Float conversions.
  • DataConverter fixed to only scale output when configured to do so.
  • FileReader fixed to start when launched with non-default source_uri.
  • FileWriter fixed feature that starts a new file following a retune.
  • FileWriter fixed initial configuration of overridden Property values.
  • FileWriter fixed several bugs with the recording timer.
  • psd moved stream callback registration to the REDHAWK constructor.
  • psk_soft updated to apply initial Property values.
  • sinksocket updated to apply initial Property values.
  • SinkVita49 fixed bug that prevented SRI updates after being stopped and restarted.
  • SinkVita49 fixed to stop immediately when a stopis initiated.
  • TuneFilterDecimate fixed calculation of SRI keyword CHAN_RF for tuning mode NORM.

REDHAWK Basic Devices

  • FmRdsSimulator reduced default level of added noise.

Documentation Improvements/Fixes

The following documentation improvements/fixes were completed in REDHAWK 2.0.2.

  • Added a note to explain that adjusting an Application’s logging configuration alters the entire Domain.
  • Corrected instructions for logging with event channels.
  • Corrected the translation of the logging config URI.
  • Corrected typos in macros in Section 13.2.4.

REDHAWK 2.0.1

22 Jul 16:05
Compare
Choose a tag to compare

REDHAWK Release Notes, Version 2.0.1

The effort in REDHAWK 2.0.1 focused on:

  • Enhancing the level of control that a system deployer has to customize the reservation schema used to manage computing resources.
  • Adding Python operators and Java methods to simplify common arithmetic operations on BulkIO time stamps.
  • Addressing numerous Discrepancy Reports (DRs).

IDE Improvements

  • In Diagrams, duplicate connections between the same two Ports are displayed in yellow and show a warning.
  • In the Sandbox, Components and Devices now display the Component or Device usage name rather than the Component’s or Device’s name.
  • In the SAD Properties Editor, the name of the Properties are now displayed rather than the ID. If no name is available, the ID is displayed.
  • An improved failure message is displayed for a Waveform installation failure.

Core Framework Improvements

  • Refactored auto-generated test script for Components to use the Sandbox.
  • Added reservation floor to GPP so that when an Application is deployed, the amount reserved per Component is definable by the system user.
  • Provided Timestamp Helper Methods that add/subtract two time stamp objects and print time stamp values.
  • Added generation of getters and setters for Java struct property fields.

IDE Fixes

  • Fixed issue so refreshing the IDL library now updates the library.
  • Fixed errors in generated spec files that prevented macro expansion.
  • Fixed issue involving certain scenarios when the palette was loaded and an error occurred.
  • Fixed issue so host collocation names can now be renamed.
  • Updated Sandbox so that command-line Properties are not passed to Resource.initializeProperties().
  • Fixed editors so when opened, items under the Target SDR are now read-only.
  • Fixed update sites in IDE to use Mars not Luna.
  • Updated IDE to include JacORB feature.
  • Fixed Sandbox so that Properties of kind Property are not passed to Resource.configure() at launch.
  • Fixed Sandbox so terminating a Waveform running in the Sandbox via the REDHAWK Explorer actually terminates the Waveform.
  • Fixed issue so when opening the Component editor for a resource in the Sandbox, or the Explorer for a Waveform, an "Unsupported content" dialog and related error messages are not displayed in the console. Additionally, in the Editor view, three tabs no longer display blank content for each of the XML files.
  • Fixed Chalkboard so releasing a Component no longer terminates the Component but actually releases the Component.
  • Updated Devices so when a namespaced Device is dragged-and-dropped onto the Device Manager Chalkboard, it no longer is displayed in yellow and does not display an error.
  • Fixed C++ workspace projects so when launched in the Sandbox, they now use entrypoint to execute.
  • Fixed Sandbox so launching Waveforms that override a simplesequence no longer causes errors.
  • Fixed Python Sandbox so when Components are launched, they have configure and property kind Properties passed to them in addition to execparams.
  • Fixed Chalkboard so the context menu for Components of Domain Waveforms no longer displays Terminate as an available option.
  • Fixed FEI Device Wizard so if a project name is name spaced, clicking Finish in the wizard no longer causes an error.
  • Updated Node Diagrams so when connecting Ports between figures that have been collapsed, an error no longer occurs if the connection is ambiguous and the IDE prompts the user.
  • Fixed SCD files in new projects to include the new CF.PropertyEmitter interface.
  • Fixed DCD files so if they reference a non-existent SPD file for the Device Manager, the Overview tab in the DCD Editor functions.
  • Fixed Redhawk Explorer view so if the ’name’ attribute is missing in a DCD, SPD, or SAD file in the SDRROOT, all items are still displayed under the Target SDR.
  • Fixed DCD editor so if a Service is manually added in the XML tab, the Diagram tab reflects it.
  • Updated code as a result of recent updates in Graphiti.
  • Updated SAD/DCD diagrams to always fully reflect changes made to the underlying XML file.
  • Fixed possible deadlock in UI thread.
  • Updated Diagrams so renaming a Component no longer causes an error.
  • Fixed issue when creating a FindBy, the FindBy was not allowed inside a host collocation; however, if the host collocation covered the FindBy in the Diagram, the FindBy sat on top of it making it appear like it was inside the host collocation.
  • Fixed Diagram palette filter to search on the full Component name.
  • Fixed the DCD Diagram palette to refresh with SDR root.
  • Fixed issue so plot connection error does not display when making connections with Waveform external Ports.
  • Fixed issue so a new Domain can be added with corbaloc or IOR syntax.
  • Fixed SAD and DCD editor to allow Property value overrides for read-only command line Properties.
  • Fixed event Property error when upgrading.
  • Fixed project update so configure/execparam Properties are changed to a new Property.

Core Framework Fixes

  • Added a documentation note regarding performing a source upgrade from 1.8 to 2.0.
  • Provided instructions on how to access Domain Manager and Application in comments for generated Components.
  • Updated comments for generated Components to use stream-based input rather than getPacket.
  • Updated bluefile_helpers to support numpy >= 1.9.0.
  • Eliminated Makefile.am warnings on Ubuntu 14.04.
  • Updated installation so when installing from source, if dependencies are not already present on the host or a valid PYPI is not accessible, the installation will fail.
  • Enabled and verified support for xsd >= 3.3.0.
  • Updated the generated configure.ac file for Octave Components by omitting a call to the RH_SOFTPKG_CXX macro. This update resolved configuration failures when dependencies did not have a valid pkgconfig, which is not present for noarch packages.
  • Updated the redhawk.sh script in /etc/profile.d to fix LD_LIBRARY_PATH set issues.
  • Added newline at end of EventChannelManager.idl.
  • Updated CF tests so they can be run without BulkIO.
  • Updated BurstIO testing so it no longer requires the libraries to be installed.
  • Added regression test to verify that Waveform allocations are consolidated into a single allocation call when allocation Properties do not overlap.
  • Renamed generated unit test testScaBasicBehavior to testRHBasicBehavior.
  • Updated generated Ports in C++ and Java to report the most specific CORBA repid in getPortSet().
  • Updated Python Components to only report Python MessageConsumer Ports as bi-directional, not MessageSupplier Ports.
  • Updated Java BulkIO InFilePort to return the expected repid.
  • Updated C++ GPP to manage Components as process groups and harmonize difference between Python and C++ GPP and changed timeouts to more sensible values.
  • GPP Updated C++ GPP to set the process group ID during launch and then terminate based on the group ID if a Component does not die.
  • Modified sb.launch() to allow overriding property kind Properties.
  • Added support to properties.py for conversion of non base 10 strings.
  • Updated py2prf so when exporting Properties to xml, simplesequence and structsequence are correct.
  • Fixed Application launch so that Component command line Properties with no value do not get included in the incorrect initialization step.
  • Fixed Sandbox DataSourcepush() to honor the EOS flag at the end of large pushes when the total size is an exact multiple of the packet size.
  • Fixed Python Sandbox so it does not call initializeProperties() after the IDE calls initializeProperties().
  • Fixed Python Sandbox so Java Components do not fail in Sandbox when the name Service is not running.
  • Fixed DataSink so it honors the SRI subsize and returns a frame matrix.
  • Improved feedback when an XML parsing error occurs.
  • Modified Python PRF parser definition so app_prop is not part of the PRF parser definition for the struct.
  • Fixed Python Service logging level so DEBUG_LEVEL is honored.
  • Resolved issues when invalid Port names are used in Service connections.
  • Fixed internal UUID module so generated UUID uses versions 1 or 4 and randomizes the MAC address.
  • Fixed Device Manager to only report child processes as having exited when the child process terminates, ignoring non-fatal signals.
  • Fixed Application stop to continue to stop all of the Components in an Application even if one fails, still throwing an exception at the end.
  • Fixed Domain Manager memory leaks from parsers for Properties and fixed minor leaks with _ptr usage.
  • Extended the Domain Manager to handle Application registrations locally.
  • Added test for backwards compatibility with partial struct configuration.
  • Fixed Python Sandbox to ensure that only simple Properties are passed on the command line, and that non-overridden command line Properties are not included in initializeProperties().
  • Fixed issues with validating SAD file from installApplication() and createApplication() and issue with default command line option for new Properties.
  • Fixed Connection Manager so connections to Applications cannot be deferred, and connections that cannot be deferred are deleted when the endpoint goes away.
    Modified test Component cpp_with_deps to build on Ubuntu 14.04.
  • Fixed issue to prevent deadlock when a Device Manager shuts down at the same time one of the Applications deployed to its Devices is released.
  • Added semantic checking to the contents of a Waveform SAD.xml file and its associated Components and softpackage dependencies.
  • Updated Python module to recognize external Ports that are in a host collocation block.
  • Updated Domain Manager to handle IDM Channel messages.
  • Added new interface extensions on core services to Python package.
  • Added autotools-generated files to clean up for REDHAWK Library Projects.
  • Fixed Python code generator to assign the default values for inherited Properties in the base class init() method instead of at the class definition level.
  • Fixed launch failure for g...
Read more

REDHAWK 2.0.0

22 Jul 16:12
Compare
Choose a tag to compare

Core Framework Changes

BulkIO stream-based API

  • Provide structures to manage data flows based on streams rather than individual data pushes.
  • Allow the retrieval of arbitrary amounts of information from the incoming data flow.

Domain Awareness

  • Provide Components with a pointer as part of the base class to their Domain Manager and Application objects.
  • Provide Devices with a pointer as part of the base class to their Domain Manager and Device Manager.

Connection Manager

  • Provide better visibility into and management of system-level connections.

Event Channel Manager

  • Simplify the creation, interaction with, and management of Event Channels.

Network Allocation/NIC selection

  • Provide the allocated NIC as part of the base class to a Component that requested system bandwidth on deployment.

New GPP

  • Written in C++, so it is more responsive.
  • Detects when Components segfault and issues a system notification.
  • Automatically manages system capacity. (Component benchmarking no longer needed to support deployment across different host computers).
  • Supports affinity by default.
    • Co-locates the Component process with its allocated NIC onto the same socket.
    • Co-locates the Components onto the same Node onto the same socket (when possible) to minimize data transfer impact.

New features that simplify current behavior or tooling.

  • Single-call Application deployment.
  • Consolidated Properties from configure and execparam kinds to Property.
  • Deprecated the need for event Property kind by supporting Property change events for all Properties.
  • Added Property change event registration to better manage Property event consumption.
  • Simplified the default behavior for newly-generated RF Device (FrontEnd Interfaces).
  • Extended FrontEnd Device code generators to Python and Java.
  • Created a "REDHAWK constructor" in Components that is invoked after the Component default Properties have been set.
  • De-conflicted environment configuration colliding dependencies on co-located Components.
  • Extended upgraded logging support to Python and Java.
  • Improved Event Service cleanup scripts to remove the need to run them as root.
  • Enhanced C++ API for inspecting and modifying Properties and SRI keywords.
  • Simple sequences can now be members of Property structures.
  • Support for namespaces (Components, Devices, Services, and Waveforms).
  • Added getPortset to return a list of all the Ports that a Component or Device supports.

IDE New Features and Functionality

New Property Support

  • Added support for simple sequences in structs, struct sequences.
  • Added support for the new Property kind, property, and the commandline attribute.
  • IDE helps upgrade old configure or execparams during code generation.

Shared Libraries

  • Added wizard for creating new REDHAWK shared library projects for C++.

Namespaces

  • All REDHAWK project types support namespaces by using names with dots (for example, a.b.c).

Diagrams

  • Waveform and Node diagrams have been completely re-implemented.
  • Waveform diagrams have more intuitive Find By support.
  • Waveform diagrams have new support for FrontEnd usesdevice relationships.
  • A diagram was added for the Sandbox Device manager.
  • Diagrams support visualizing Port statistics with color.
  • Diagrams support visualizing dead/unreachable domain Components with color.
  • Diagrams provide visual help making connections by coloring suggested Ports.
  • Diagrams provide visual feedback while Components are still starting up. Components are initially gray, and when launching is complete, the Component’s background color changes to blue.
  • Diagrams allow expanding/collapsing shapes to hide complexity.

Eclipse

  • Based on the latest version of Eclipse (Mars, version 4.5).

FrontEnd Device Creation

  • Wizards now support creating Java and Python FrontEnd Devices.

Logging

  • The IDE supports changing the log level of Components and Devices at runtime.
  • The exit code for Components launched in the Sandbox is now reported in their console.

Port Descriptions

  • Added support for adding Port descriptions in the SCD file.
  • Display of Port descriptions in the Properties view for Ports and in various tooltips.

IDE Improvements

  • When selecting IDLs (when dealing with Ports or with Services), the IDE now filters uncommon or potentially problematic IDLs unless the user selects to show all.
  • The XML editor (instead of a text editor) is now used when opening REDHAWK XML files from the Target SDR or from a domain.
  • Warning messages for the IDE detecting that the localfile/codefile (for an SPD implementation) were missing on disk have been improved.
  • The IDE can handle receiving a null reference to a Component from the Waveform. This supports inspecting some domains, which were not exhibiting REDHAWK-compliant behavior.
  • The IDE uses WebKit on CentOS 6.6+ to improve the display of pop-up context help.
  • Tooltips to display Property descriptions were added to the FrontEnd Tuner Allocation dialog.
  • If an error occurs while the IDE is determining what files to generate during code generation, the IDE will display the command it tried to execute to facilitate diagnosing problems/error reporting.
  • Ports have been moved to a separate tab in the SPD editor, and that tab is included in the SCD editor.
  • After performing code generation, the IDE places the code generator version in the SPD file in the type attribute of softpkg. This helps identify what version of REDHAWK a particular asset was originally created for.
  • The IDE can handle an UnknownPort exception when it requests a Port from a Component that is listed in its SCD file. This supports inspecting some Components, which were not exhibiting REDHAWK-compliant behavior.
  • The IDE now installs and builds C++ Components, Devices, and Services by invoking build.sh at the top level of the project. This applies to new projects and projects that have their build.sh regenerated with code generation.
  • The IDE performs a clean build after code generation to help prevent stale build artifacts.
  • The IDE supports setting Group ID in the Tuner Allocation dialog.
  • Added an advanced option to uninstall the existing Waveform factory when launching a Waveform.
  • Advanced launch options are available when launching Components, Devices, Services, Waveforms, and Nodes in the Sandbox, including setting Properties, auto-start, timeouts, and log level.
  • The IDE honors the BulkIO SRI blocking flag by default when plotting. This setting can be overridden in the plot settings.
  • When plotting, individual streams can be hidden. Additionally, the color of the streams can be changed.
  • When the IDE creates connections to plot or monitor data, it now prefixes its connections with IDE_ so they can be better identified.
  • The IDE provides the ability to toggle between showing RF and IF values on plot axes.
  • The IDE supports connecting to multiple domains with the same name, but on different machines (previously, the names had to be unique).
  • The IDE now thins plot data based on refresh rate. This helps when plotting Ports with very high/very low data rates. The setting is adjustable in the plot settings.

IDE Fixes

  • Exporting multiple projects to the Target SDR via the context menu on projects only exported the first project in the selection.
  • Before performing code generation, the IDE may have shown several warnings in the SPD editor that code generation had not yet been performed. These warnings sometimes remained even after performing code generation.
  • Sequence Properties of complex type were not treated correctly resulting in issues displaying or setting the Properties at runtime.
  • When a domain was launched via the IDE, the console always showed the domain name as REDHAWK_DEV regardless of its actual name.
  • Domain Waveforms opened with the Chalkboard editor might get started/stopped twice when the Waveform was started/stopped.
  • REDHAWK C++ Service projects might have warnings/errors related to not being able to find included code. These are cleared up by new settings applied by code generation and by completing a build.
  • On Ubuntu, after building the first time, the IDE would report errors such as installing ./config.sub, installing ./install.sh, etc. This is corrected for legacy projects during code generation.
  • The install location of a Waveform or Node was being determined by the project name when it should have been based on the name in the XML.
  • For existing REDHAWK projects, some settings were not updated during code generation. These included environment variables (like OSSIEHOME) and error parsers.
  • The IDE would automatically overwrite the build.sh file at the top of a project for legacy projects. This is now corrected by code generation.
  • The IDE would automatically overwrite the .spec file at the top of a project for legacy projects. This is now corrected by code generation.
  • The FrontEnd Tuner Allocation dialog did not validate entires correctly.
  • The IDE now handles any CORBA COMM_FAILURE errors that occur while shutting down a Device Manager.
  • The IDE now correctly parses forward-declarations in IDL files.
  • The SPD editor did not allow saving changes in the code section for a selected implementation.
  • The IDE was adding spaces into complex number expressions in Properties in XML (for example, 1 + j3 rather than 1+j3), which caused an error in the Core Framework.
  • Under certain scenarios, the IDE might release domain Waveforms that had been opened with the Chalkboard editor when the IDE was closed.
  • The IDE now allows setting an enum Property in the Waveform Property Editor.
  • Properties with kinds event and allocate were marked as an error.
  • Data saturation while plotting could cause the plots to go blank and stay blank even after data returned to a valid range.
  • The Project Explorer showed arrows next to closed projects.
  • The IDE did not correctly add values for struct sequences in the PRF/SAD XM...
Read more

REDHAWK 1.10.2

22 Jul 16:07
Compare
Choose a tag to compare

The effort in REDHAWK Version 1.10.2 focused on fixing bugs and improving the reliability
of the IDE.

IDE Fixes and Improvement

  • Ports can now be added to Services that have an interface that inherits from CF::PortSupplier
  • Fixed issue that caused Services/Devices with execparams to fail to launch in the Sandbox
  • Fixed issue with the code generation for control panels that caused compilation errors
  • Improved performance by eliminating redundant CORBA checks of Components and Devices in the Sandbox
  • Fixed an issue that caused the IDE to release Components/Waveforms in a Domain at shutdown if they had been edited in the Chalkboard
  • Improved the IDE so it now performs a build clean before a full build after code generation has been performed
  • Improved code generation for C++ projects so that it uses the build.sh in the root of the project for build operations instead of the build.sh in the implementation folder