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.
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 |
Remoting Frame Size resets on code generation.
|
Solution Handling |
After Hotfix installation, existing Solution cannot be loaded. |
Code Generator |
Wrong DFF generation for buffers |
Designer |
Send buffer from APIrq is not supported |
Designer |
Channel Labels in Component Projects with Scope |
Model Validation |
Check for duplicate names from library project |
Model Validation |
Do not allow names that cause conflicts in generated code |
Code Generator |
Bus Issue |
Project Generator |
Incorrect Remote Object Registry Size |
Code Generator |
Missing scope in buffer unit tests |
Code Generator |
Incorrect channel in DSL on broadcast port |
Source Code Editor |
Sync Handlerfile does not work |
Build Configuration |
Missing Default Stack Size configuration |
Project Generator |
Wrong Stack size calculation |
Project Generator |
USE_BUFFER is not generated if non buffer events are registered |
Designer |
Reorder BusPort do not update channels correct |
Code Generator |
NullPointer in buffer generated unittest |
Designer |
Remove text 'Analyzer State' in status bar |
Code Generator |
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 |
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 |
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. |