New Features in DATAFLOW Version 2.1

The following new features have been added for the Release 2.1 of the DATAFLOW Software:

  • Component Mapping
  • I/O Buffers
  • Multicast Ports
  • Software Bus
  • Collapse advanced settings in build config

Also see DATAFLOW V2.1 Migration Guide for additional details.

 

Component Mapping

A new project type was introduced: Component Project. A Component project has to be created with a new solution. This solution can then be under different version control than other components and than the system architecture project. From the system architecture, a component can be mapped to the component project. Once mapped, all data of this component and any sub components is located in the new project. The system project only contains a reference to the component.

Map Components to Solutions

 

I/O Buffers

To allow data exchange between 2 active parts without the use of DATAFLOW Runtime messages (either because there would be to many messages or the messages would be too large) an I/O buffer can be generated. This buffer has a configurable size and data type and provides events to manage the flow if data on both sides.

Use I/O Buffers in Software Design

 

Multicast Ports

To reduce the number of channels for concepts such as logging, alerting or central status broadcasting, a new port type has been added. Multicast ports support 2 patterns:

  • Publisher/Subscriber (Single sender, multiple receivers)
  • Notifier/Responsible (Multiple senders, single receiver)

In both cases, the user does only define the ports based on the role of an active part. All channels are generated automatically on code generation and do not appear in the diagram.

Use Broadcast and Reporting Channels in Software Design

 

Software Bus

To reduce the number of channels between containers for complex communication protocols, a software bus has been added. The bus is composed using the following new elements:

  • Bus Creator
  • Bus Port
  • Bus Connector
  • Bus Selector

The user can use the bus creator to combine two or more channels into a bus and then use the new bus connector and bus port to connect the bus to other containers. In the receiving container, a bus selector can be used to access the individual channels again.

The bus is resolved on code generation. All required channels are generated automatically on code generation and do not appear in the diagram.

Use Software Bus in Software Design

 

Collapse Advanced Build Settings

The Build Configuration pages in the Project Setting Dialog have been improved. By default, the are shown in a 'simple' mode, where only the most important properties are shown required for code generation. To show all properties, a button on the upper right corner allows to toggle between 'simple' and 'advanced' mode.

Build Configuration Page (DATAFLOW Code)

 

Bug Fixes

The following known issues have been fixed for the Release 2.1 of the DATAFLOW Software:

 


DATAFLOW Software V2.1.7

Note: This Release installs the Code Generator V2.5.4 as new default. This Code Generator will no longer support generation of C++03/11 code. For older projects that require C++11 or older, the code generator must be manually changed. It also includes support for Imt.Base V4.0 and V4.1 which require at least C++14. Older projects that require C++11 or older must set the Imt.Base Version to V3.1 or older.

The following bugs have been resolved in DATAFLOW Software V2.1.7:

Topic Description

Code Generation

ID-5138

Build issue on constexpr (IAR EW 9.50.1)

Code Generation

ID-5155

Protocol reset method not covered in generated unit test

Code Generation

ID-5157

Protocol Identifier file for referenced project is generated when 'Generate Referenced Types' is disabled

Data Type Editor

ID-5158

First protocol created opens read only editor

Diagram Export

ID-5159

Diagram Export shows selected elements

Diagram Export

ID-5160

Name of diagram is not the same on single export vs bulk export

Code Generation

ID-5168

Using for own namespace

Code Generation

ID-5169

Unnecessary using declaration for own namespace generated

Code Generation

ID-5169

White spaces in class definitions

Code Generation

ID-5170

Checksum calculation contains checksum (recursion)

Code Generation

ID-5171

Add validation warning on incorrect checksum fields

Build Config

ID-5172

Default coding style does not match IMT defaults

Project Handling

ID-5175

Rename referenced project does not update name in referencing project

Code Generation

ID-5178

Error on generate types only project

Code Generation

ID-5179

Constant USE_BUFFERPOOL is not commented out in PlatformConfigApp.h

Code Generation

ID-5182

Bus creates incorrect IM code on nested containers

Build Configuration

ID-5183

Simple / Advanced Button is confusing

Build Configuration

ID-5184

Generator / Config Path misleading

Code Generation

ID-5186

Imt.Base V3.1/V4.0 Compatibility Issues

Code Generation

ID-5187

Incorrect PC-Lint suppressions

Code Generation

ID-5188

Missing PC-Lint suppressions in V4.0 and older

Code Generation

ID-5189

Parameter name does not match interface (Imt.Base V4.0 and older)

Model Validation

ID-5190

Validation not performed on generate referenced types

 

DATAFLOW Software V2.1.6

Note: This Release installs the Code Generator V2.5.2 as new default. This Code Generator will no longer support generation of C++03/11 code. For older projects that require C++11 or older, the code generator must be manually changed. It also includes support for Imt.Base V4.0 and V4.1 which require at least C++14. Older projects that require C++11 or older must set the Imt.Base Version to V3.1 or older.

The following bugs have been resolved in DATAFLOW Software V2.1.6:

Topic Description

Data Type Editor

ID-3462

Description field in type editor increases height

Diagram Editor

ID-3549

Diagram Editor can get stuck

Solution Explorer

ID-4056

In Explorer on Solution view Sort does nothing

Diagram Editor

ID-4069

TextBox height can not be adjusted

Solution Handling

ID-4225

Solution not loaded (index out of range): AggregateLoadProjectCallback

Main Window

ID-4226

Invalid Pane in workspace.json not purged

Data Type Editor

ID-4302

Protocol editor shows wrong classname in namespace bread crumb

Data Type Editor

ID-4387

Create Protocol opens wrong editor

Diagram Editor

ID-4469

NullPointerException on one to any element

Diagram Editor

ID-4483

BusPort deletion does not remove connected SELECTOR port

Component Mapping

ID-4503

tree.json of componet project is modified when a new Signal is created in a library project

Solution Handling

ID-4522

Solution not loaded (index out of range): Telerik AutoHideArea

Diagram Editor

ID-4524

Crash on create OneToAny channel

Data Type Editor

ID-4529

Crash on add signal

Code Generator

ID-4552

Possible Port name duplication

Solution Handling

ID-4578

Locked DFSX will crash DATAFLOW Studio

Code Generator

ID-4599

Failed to generated Bus with Sink/Source

Code Generator

ID-4600

Failed to generated Bus with ExternalPort

Diagram Editor

ID-4607

Crash on ClearAssignedDataTypesAction

Diagram Editor

ID-4608

InvalidOperationException on Move Element

Code Generator

ID-4615

UnitTests with PortInForwarder

Build Configuration

ID-4618

Misleading Display of Constants Generated from Model

Diagram Editor

ID-4619

Read-Only Items Cannot be Inspected

Solution Handling

ID-4620

Timestamp issues on save elements

Code Generator

ID-4625

Invalid code generated on array field with range

Code Generator

ID-4656

Publish Port does not generated valid code

Diagram Export

ID-4658

Image Export incomplete

Toolbox Window

ID-4692

Sort Toolbox

Solution Handling

ID-4693

Delete imported project again shows error

Data Type Editor

ID-4694

Description Field of Enums do not scale

Diagram Editor

ID-4702

Time span visualization

Diagram Editor

ID-4706

Box can not be rotated by diagram

Diagram Editor

ID-4707

Resize of Box element is overwritten

Source Code Editor

ID-4708

Dataflow does not show error on Read-Only files

Project Generator

ID-4716

Crash on generate project

Project Macros

ID-4729

Wrong FilterType in Macro Create Dialog

Component Mapping

ID-4775

Sync Down fails when not all referenced DFS projects are always present

Code Generation

ID-4777

Incorrect Doxygen Comment Format on Generated Enumerators

Code Generation

ID-4781

Naming Conflict for Multiple Generated ProtocolIdentifier.h

Code Generation

ID-4782

Corrupt Code Generated for Custom Type With Empty Literal Field

Solution Handling

ID-4785

Wrong author when save project

Code Generation

ID-4796

Change sort order affects generated code

Code Generation

ID-4797

Internal forwarder generated on broadcast channel with no internal port

Solution Handling

ID-4798

Link to type is lost on referenced project

Code Generation

ID-4799

Generator error with referenced library project

Code Generation

ID-4806

Implicit cast in generated type code

Code Generation

ID-4807

Generated protocol test fails on bool field with default value

Code Generation

ID-4888

URL in description not correctly transformed to code comment

Code Generation

ID-4889

Incorrect channel connection

Code Generation

ID-4890

Incorrect ChannelInternalForwarder on Publish/Subscribe

Component Mapping

ID-4930

Component Project mapping fail

Code Generation

ID-4931

Invalid namespace creation due to reserved keyword in generated intermediate files

Code Generation

ID-4955

Fix handling of characters

Code Generation

ID-4956

Integer Literals on 64 bit systems

Code Generation

ID-4961

Char Literal Issues

Code Generation

ID-4962

Missing static code checker suppression.

Explorer Window

ID-4966

View setting in explorer inconsistent after start.

Solution Handling

ID-4967

Newly imported project not saved.

Solution Handling

ID-4968

Crash when deleting project.

Code Generation

ID-5021

Enum COUNT constant must be of size_t an not ValueType.

Code Generation

ID-5043

Make all destructors noexcept.

Code Generation

ID-5058

Use constexpr for constants in FreeRunningTimer.cpp.

Code Generation

ID-5063

Comment on closing namesapace causes axivion issue (>= C++17).

Code Generation

ID-5065

Show warning if used name is same as IAR macro.

Code Generation

ID-5079

Add validation warning on useless range.

Data Type Editor

ID-5085

Search function in type editors does not work for all text.

Diagram Editor

ID-5094

Remove function style AP generation.

Data Type Editor

ID-5102

Enumerator View not scrollable.

Data Type Editor

ID-5110

Limit width of Data Type Editor text.

Project Generation

ID-5135

Protocols in Library Project not considered in automatic event size.

Code Generation

ID-5137

Incorrect namespace generation.

 

DATAFLOW Software V2.1.5

The following bugs have been resolved in DATAFLOW Software V2.1.5:

Topic Description

Code Generator

ID-4519

Generated Unittests for IrqAP elements have errors in certain cases.

Diagram Editor

ID-4579

Missing Toolchain ContextMenu entry.

Code Generator

ID-4581

Missing final keyword in handler declaration.

Code Generator

ID-4582

Remove spaces from TEST_F.

Code Generator

ID-4592

Not unique names for test cases.

Code Generator

ID-4595

Use noexcept.

Code Generator

ID-4601

StartupController.h does not delete default destructor.

Code Generator

ID-4602

Crc does not generated namespace.

Code Generator

ID-4604

Fixed wrong parameter generation.

Code Generator

ID-4605

Pointless comparison of unsigend integer with zero.

Code Generator

ID-4506

Wrong Documentation URL with #.

Diagram Editor

ID-4612

Notifier has wrong Channel connection.

Code Generator

ID-4697

Incorrect Port Names in generated code.

 

DATAFLOW Software V2.1.4

The following bugs have been resolved in DATAFLOW Software V2.1.4:

Topic Description

Solution Handling

ID-4502

Write-protected component projects are modified when saved in the parent system solution.

Project Generator

ID-4530

Additional newlines generated in custom content for PlatformConfigApp.h.

Code Generator

ID-4544

Runtime issue with generated I/O Buffer code.

Code Generator

ID-4545

Timestamp issues on save elements.

Code Generator

ID-4565

StartupController has missing public scope.

Code Generator

ID-4566

StartupController with custom assert handler.

Code Generator

ID-4569

StartupController lint fix.

Code Generator

ID-4572

Missing scope for CppExportNamespace=false.

Code Generator

ID-4573

Missing void parameter for default parathesis.

Code Generator

ID-4574

Missing namespace for test types.

 

DATAFLOW Software V2.1.3

Important Note: This version removes the DATAFLOW Account and License from the software together with all related dialogs and configuration pages.

The following bugs have been resolved in DATAFLOW Software V2.1.3:

Topic Description

Data Type Editor
ID-4363

Remoting Frame Size resets on code generation.

 

Solution Handling
ID-4384

After Hotfix installation, existing Solution cannot be loaded.

Code Generator
ID-4389

Wrong DFF generation for buffers

Designer
ID-4390

Send buffer from APIrq is not supported

Designer
ID-4403

Channel Labels in Component Projects with Scope

Model Validation
ID-4404

Check for duplicate names from library project

Model Validation
ID-4405

Do not allow names that cause conflicts in generated code

Code Generator
ID-4422

Bus Issue

Project Generator
ID-4423

Incorrect Remote Object Registry Size

Code Generator
ID-4424

Missing scope in buffer unit tests

Code Generator
ID-4441

Incorrect channel in DSL on broadcast port

Source Code Editor
ID-4442

Sync Handlerfile does not work

Build Configuration
ID-4449

Missing Default Stack Size configuration

Project Generator
ID-4450

Wrong Stack size calculation

Project Generator
ID-4458

USE_BUFFER is not generated if non buffer events are registered

Designer
ID-4472

Reorder BusPort do not update channels correct

Code Generator
ID-4480

NullPointer in buffer generated unittest

Designer
ID-4481

Remove text 'Analyzer State' in status bar

Code Generator
ID-4491

Invalid DSL Buffer DataType when protocol is renamed

 

DATAFLOW Software V2.1.2

The following bugs have been resolved in DATAFLOW Software V2.1.2:

Topic Description

Data Type Editor
ID-4065

Integer spinbox control does not support full int64/uint64 range.

This may lead to incorrect generated code that requires manual change on generated code file when the full range of 8 byte integer types is used.

Toolbox Window

ID-4224

Wrong Icon for Multicast Ports in Toolbox.

General UI

ID-4233

Application does not show hint that viewer mode is active

Toolbox Window

ID-4301

Toolbox group Interfaces collapse sub-groups automatically when an interface is added/removed from a diagram

Type Editor

ID-4304

Enums and protocols of a library project could not be used for nested protocols

Diagram Editor

ID-4306

It is not possible to add a sink to a channel Source

Exlorer Window

ID-4307

library dependencies not completely documented and the behavior is unexpected

Solution Handling

ID-4309

Solutions with references to external projects (component projects) cannot be opened when the user.json file is missing

Code Generator

ID-4309

RuntimePools generation creates new warnings

Component Handling

ID-4310

Build configuration and Toolchain of component project will be deleted when system solution are saved

Protocol Editor Window

ID-4315

Protocol Size not calculated correctly

Property Inspector Window

ID-4317

Typo in Property Inspector

Code Generator

ID-4318

Default destructor declaration missing

Build Configuration handling

ID-4319

Referenced build config can not be purged

Code Generation

ID-4320

Incorrect assert in generated RuntimePools.cpp

Toolbox Window

ID-4322

The toolbox does not show the protocols, signals, buffers

File Menu

ID-4328

Could not open solution from recent history

Toolchain Handling

ID-4334

No IDE shows error message

Code Generator

ID-4335

Wrong Statistics include path

Diagram Editor

ID-4336

Convertion from Outputport to Busport crashes the designer

Diagram Editor

ID-4337

Bus selector does not create ports for each protocol of bus

Solution Handling

ID-4343

Type References to Lib Project lost after reload

 

DATAFLOW Software V2.1.1

The following bugs have been resolved in DATAFLOW Software V2.1.1:

Topic Description

Assign Data Types
ID-3794

Fixed an issue where the assigned data type on a port was lost on reload solution.

Toolbox Elements

ID-3543

Fixed an issue where the Toolbox window was empty in flat mode.

Improve Save Elements

ID-3755

Fixed a sporadic issue on save elements.

Handle Configuration rename in IAR Project

ID-3927

Check for renamed configurations and add a new configuration with the expected name (e.g. 'Debug') in the IAR generator when the user renames automatic generated configurations.

Remove unnecessary using in generated code

ID-3928

Removed an unnecessary using in the generated FreeRunningTimer.cpp.

Remove incorrect warning

ID-3948

On code generation a warning about overlapping paths was displayed when parts of the paths matched, such as 'App' and 'App.UnitTest'.

Make nested fields read only

ID-4031

In the protocol and struct editor, nested fields could be changed, which was not intended. Instead, the editor for the referenced type has to be opened.

Hide label in main window

ID-4036

The label displayed in the main window ('No drawing area open') has been removed.

Removed incorrect dependencies in generated VS project

ID-4040

In generated visual studio project, there where dependencies to platform specific packages in unit test projects (such as HAL or Runtime) which have been removed.

Add include to generated config header

ID-4042

In the generated RuntimeConfigApp.h, the include of Platform.h was missing and has been added.

Generate move operators

ID-4043

For C++11 and newer, the move operators are now deleted for all generated component classes. For generated data type classes, a default move operator declaration has been added.

Remove warning on deleted operators/constructors

ID-4044

For C++11 and newer, the deleted operators and constructors are now generated as public instead of private to avoid warnings and static code analyzer reports. For C++03 and older, an unimplemented private operator/constructor is used as before.

Supress autosave if no changes

ID-4045

Autosave does no longer save the solution if there are no changes since the last save (or autosave).

Improve visibility of icon in dark mode

ID-4073

In dark mode, not all icons in the explorer window where visible when selecting an entry, so the color was adjusted to fix this.

Improve paste diagrams to external programs

ID-4074

When elements in a diagram editors are copied to an external program (e.g. paint) the diagram border is no longer added. The border is still added for the diagram export to PNG as before.

Use correct placeholders in IM template

ID-4107

The default IM template did contain incorrect placeholders. The template has been changes to only use correct placeholders for IM files.

Allow workspace and project in same folder for IAR

ID-4146

The IAR project generator did ignore the option 'Subdirectory per Project'. Now it is possible to generate all projects in the same folder as the workspace file.

Allow disable copy configuration headers

ID-4150

Disable the build option 'Copy Configuration Headers' had no effect. Now the generation of the CopyProject (VS) or call to the batch file can be correctly disabled on project generation.

Allow custom preprocessor defines

ID-4151

Configured custom defines for the preprocessor in any toolchain where ignored. Now it is possible to generate cusom defines for all or a specific build configuration.

Use monospace font for file templates

ID-4174

The editor for file header templates uses a monospace to allow alignment of values which was tricky with the previously used proportional font.

Annotation Author property on copy

ID-4178

Fixed the display of the author when an annotation element was copied.

AP Handler documentation comment

ID-4197

A documentation comment is added to the generated active part handler. It uses the same comment as for the AP and Interface class. This will prevent static code analyzer messages for undocumented classes.