Skip to end of metadata
Go to start of metadata









Newest version:

Version 3.3

What's New

General

See

(plus)Added support to embed Structs and Unions into each other.AddedStructures
(plus)Added feature to allow Preprocessor Directives "flagging" of Usage links.AddedPreprocessor Directives
(plus)

Added Preprocessor Directives support for Interfaces, Enum, Structs and Unions.

AddedPreprocessor Directives
(plus)

Added OpaqueExpression support for InputPin "Default Value".

Added
(plus)

Added support for ReadStructuralFeature and ReadSelf Action

AddedRead Structural FeatureRead Self
(info)

Updated Activity action sequence to infer ControlFlow from given ObjectFlows

ChangedControl Flow
(info)Ignoring empty Code Generators to improve performanceChanged
(info)

MagicDraw model reading component to improve perfromance.

Performance test result loading a ~30MB model:

Version 3.2: model loading ~8 min / code generation ~5 min

Version 3.3: model loading  ~10 sec / code generation ~1 min

Changed

Bug fixes

(error)Fixed MagicDraw State behavior Naming
(missmatching names of functions).
Fixed
(error)Fixed MagicDraw ActionNode Input/ValuePin mixup for Call/BehaviorAction targets. Fixed
(error)Fixed MagicDraw UML Profile regarding missing and wrongly named Stereotypes and Tagged ValuesFixed
(error)Fixed MagicDraw progress dialog "No Warnings/Errors" statement.Fixed

Version 3.2

What's New

General

See

(info)Updated StructuredNode body/part to only search ExecutableNodes with an "action" as starting point.ChangedLoop and Loop NodeConditional Node
(info)Interfaces to support generation of nested structs and unions in declaration fileChangedInterfaces
(info)Interfaces to support generation a structs for defined Attributes in declaration fileChangedInterfaces
(info)Updated private embedded structure to be included in the private declarations in C++Changed
(info)Updated "CustomSettings" Stereotype to include EnumerationsChangedClasses
(info)Updated MagicDraw about box to show more information. Changed
(info)Updated Requirement and trace relationship check to find more traced requirements.Changed
(info)Code Editor starting automaticallyChangedCode Editor
(plus)Support for Code Editor to run in backgroundAddedCode Editor
(plus)Added Code Editor "Always Show Code Editor" optionAddedCode Editor
(plus)Support to customize generation of includes for Packages, Classes and/or Usage links.AddedDependencies, IncludeStorage in Stereotypes & Tagged Values
(plus)Generation of union class typesAddedStructures, union in Stereotypes & Tagged Values
(plus)"New Version Available" feature, with download link, to show in menu if a new version is available.AddedNew Version Information
(plus)Added warning and error counter to show in code generation progressAddedProgress dialog

Stereotypes

(plus)"IncludeStorage" for Packages, Classes and Usage links to contain the IncludeStorage Tagged ValuesAddedDependenciesStereotypes & Tagged Values
(plus)"union" for Classes to generate the class type unionAddedStructuresStereotypes & Tagged Values
(plus)"ordered" for all Elements to contain the Pos Tagged Value (for MagicDraw only)AddedHow can I order element or features for generation?
Stereotypes & Tagged Values 

Tagged Values

(plus)"IncludeStorage" for Packages, Classes and Usage links to contain the IncludeStorage Tagged ValuesAddedDependenciesStereotypes & Tagged Value
(plus)"Pos" for all Elements to support ordering elements and features for generation (for MagicDraw only)Added

How can I order element or features for generation?
Stereotypes & Tagged Values

Bug fixes

(error)To use Call Operation notes/comment instead of called Operation notes/comment Fixed
(error)Fixed generation of Operation Parameter type prefix for nested types in C++

Fixed


(error)Generation of MISRA compliance comment for modelled "empty" else ControlFlowsFixed
(error)Custom file naming and extension error during implementation/declaration file include Fixed
(error)Missing array declaration for field initializers in C++Fixed
(error)Code Editor CefSharp/Javascript error in combination with LemonTree addinFixed
(error)MagicDraw model data reader cleanup hang fixed Fixed

Version 3.1

What's New

General

See

(info)Updated internal model reading data layer to newest version Changed
(info)Improved readability for Activity decisions (removed empty else blocks for "only if" code blocks)ChangedDecision & Merge (MISRA 14.10)
(info)Improved loading mechanism for UMLDebugger code view and diagramsChanged
(plus)Added Trace32 support for UMLDebuggerAdded
(plus)Added support for multiple/sub dir UDI files in UMLDebugger.Added
(plus)Added ModelElement property to all CustomDocumentation interfacesAddedCustom Documentation
(plus)Warning for ignored transitions due to unreachable completion transitions and completion events AddedWhy is a state transition missing in the generated code?

Stereotypes

(plus)"CustomSettings" for Packages and Classes to contain the Custom naming Tagged ValuesAddedStereotypes & Tagged Values

Tagged Values

(plus)"CustomClassName" Custom class name for the selected element and sub elements.AddedClasses - Custom Naming
(plus)"CustomExtension" Custom extension for generated files of the selected element and sub elements.AddedClasses - Custom Naming
(plus)"CustomFileName" Custom filename for generated files of for the selected element and sub elements.AddedClasses - Custom Naming

Bug fixes

(error)Auto kill feature and mutex check removed from MagicDraw code generator to support long running loading tasks.Fixed
(error)Disabled "Sync User Code" setting still synced code.Fixed
(error)"Single State Machine instance mode" missing stm instance variable in C++Fixed
(error)"Single Class insance mode" me/this pointer generation on private class file declarations.Fixed
(error)Default value storage issue for Model SettingsFixed
(error)

Possible duplicated include lines due to multiple referencing

Fixed
(error)Model sync error on Opaque/Atomic ActionsFixed
(error)Nested struct attribute generation issueFixed


Version 3.0

What's New

With Embedded Engineer 3.0 we updated to a new a new licensing mechanism.

It automatically includes a 30 day demo period and also supports floating licenses and offline roaming for up to 30 days.

All customers with valid support/maintenance are entitled to update to the new license.

For a license update or a new license please contact: sales@lieberlieber.com


General

See

(info)Changed licensing mechanismChangedLicensing: 3.0 and higher
(plus)Added support for floating server and offline licensesAddedLicensing: 3.0 and higher
(plus)Added integrated 30 day Demo license for testingAddedLicensing: 3.0 and higher
(plus)Added user code sync support for Magic Draw ModelsAdded
(plus)Added includes generation for Attributes/PropertiesAdded
(plus)Added capability for code generation for only sub packagesAddedPackages

User interface

(plus)Added code editor for opaque/user Code with code completion and syntax highlightingAddedCode Editor
(plus)Added progress bar and more details for MagicDrawAdded
(info)MagicDraw plugin license from LieberLieber ChangedLicensing: 3.0 and higher
(info)MagicDraw progress dialog can now be resizedChanged

Model settings


(plus)Added support for multiple generation languages (one per package).

Added

Packages
(plus)Added Code Editor Save Strategy for the new code editor. AddedModel Settings

Bug fixes

(error)

Added check for CallBehavior and Activity parameters to omit generation of "this/me" parameter for Interface functions.

Fixed
(error)Removed includes for nested Classes Fixed


(error)Fixed duplicate defines when using "Consider define Scope" SettingFixed
(error)Fixed duplicate declarations on static fieldsFixed
(error)Code generation error for parameters in MagicDrawFixed
(error)Fixed Json serialization issue for big UDI filesFixed

Version 2.6

What's New

Enterprise Architect Version 15

Enterprise Architect Version 15 will handle Tagged Values specified by a Profile differently than previous versions.

Please use the LL Embedded, CustomDocumenation,... and other Stereotypes to use Tagged Values.


For consolidation of old Tagged Values and other issues see: Troubleshooting

e.g.:

Found multiple 'GenSrcDir' Tagged Values in '[PackageName]' please consolidate!

or

Found multiple 'GenerationLanguage' Tagged Values in '[PackageName]' please consolidate!


Model settings (general)

See

(info)Only store changed settings as Tagged ValuesChangedModel Settings
(info)Allow saving/loading settings on each package levelChangedModel Settings
(plus)Capability to inherit/override settings from parent packages

Added

Model Settings
(plus)Allow load settings stored in JSON-Format

Added

Model Settings

Model settings

(plus)"AnsiC class instantiation strategy" to define if the code should contain the statically allocated instance and/or the "new" function to access this instance.AddedModel Settings
(plus)

"Single Class instance mode" omit the generation of the "this/me" pointer for each Class operation

AddedModel Settings
(plus)

"Single State Machine instance mode" omit the generation of the "stm" pointer for each StateMachine operation

AddedModel Settings

Profile




(plus)LieberLieber Embedded Engineer Preprocessor a new profile to allow the modelling of C/C++ preprocessor directivesAddedPreprocessor Directive

Stereotypes

(plus)"declaration" for Classes, Structs, Enum, Functions and Attributes/Properties to define a generic code prefix and suffix

Added

Declaration
(plus)"CustomDocumentation" for classifiers and packages to contain the "Field, File and Method Headers" Tagged ValuesAddedStereotypes
(plus)"CodeGenerationSettings" for packages to contain the settings Tagged ValuesAdded

(info)

"standard lib" can now also be assined to InterfacesChanged

Tagged Values

(plus)"Prefix" only in combintation with the "declaration" stereotype. To set a code prefix for the element

Added

Declaration
(plus)"Suffix" only in combintation with the "declaration" stereotype. To set a code sufix for the element

Added

Declaration
(plus)"Incorporation" only in combintation with the "declaration" stereotype. To set where the pre-/suffix should be incorporated (.c file, .h file  or both)

Added

Declaration

General

(plus)Code Generation can now be started on any package level as long as one of its parent packages is flagged with the LL Embedded StereotypeAddedPackages
(plus)New "Show relevant element in model" in the Code Generation Progress dialog, Messages list.

Added

FAQ'S
(plus)"Open generation folder" feature in Embedded Engineer context menu.

Added


(plus)Detection of Function duplicated/implemented behavior as Activity.Added
(plus)Code Generation for MagicDraw Teamwork Cloud projectsAdded
(info)Improved IfThenElse chaining when using multiple JunctionsChanged

Cosmetics

(plus)Warning message during generation if conflicts are found during code synchronizationAdded
(plus)Support for "out" parameter direction during generation (Warning will be generated)Added
(plus)Warning message about empty LoopNode/ConditionalNode Test/Clause/Body partsAdded
(info)Updated check/warning for ActionPin direction in combination with ObjectFlow direction.Changed

Bugfixes

(error)Error when using multiple default Transitions in combinations with JunctionsFixed
(error)Issues with generated #ifndef construct when using special characters in Class name.

Fixed


(error)Composite State activation during Transition from external Junction.Fixed
(error)Improved check of CallOperation parameters to omit generation of "this/me" parameter for Interface functions.Fixed
(error)ConditionalNode SwitchCase "case default" part generationFixed


Version 2.5

What's New

Modeling Tool support

The latest version incorporates an update of the underlying model access layer / framework for Uml.

This allowed us to also support other Uml modeling tools and lead to some changes in our Uml Profile, as well as the handling of the code generation itself.

(for more information about these changes read below)

Currently supported Uml tools:

  • Enterprise Architect
  • MagicDraw


Generation Language

Version 2.5 will no longer provide two seperate menu entries for code generation of C++ and AnsiC.

To select the generation language please either:

  • use the Tagged Value GenerationLanguage
    or
  • use the LL Embedded Stereotype

at the appropriate package (the same package that has the GenSrcDir set)


Stereotypes

(Plus)"LL Embedded" containing all necessary Tagged Values for code generationAdded

Tagged Values

(Plus)"GenerationLanguage" allows the selection of the code language to generateAdded

General

(info)Replaced individual generation language menu entries with a generic oneChanged
(Plus)Added support for define and typedef attributes in interfacesAdded
(Plus)Added modeling tool information to UmlDebugger info file (.udi)Added
(Plus)Added model ConnectionString to UmlDebugger info file (.udi)Added
(Plus)

UmlDebugger can now open and read the UmlDebugger info file (.udi) directly

Added
(Plus)Encryption of DataBase ConnectionString in UmlDebugger info file (.udi) to obfuscate DB username and passwordAdded
(Plus)Obfuscating DB password in UmlDebugger window titleAdded

Cosmetic

Bugfixes

(Fehler)Improved loading of generated code in the UmlDebugger windowFixed
(Fehler)Updated ModelSettings to read multiple root nodesFixed
(Fehler)Removed "this" parameter from executable entry point behavior (ClassifierBehavior)Fixed

Version 2.3

What's New

Model settings

(Plus)Added "Consider define scope". If set,will be generated defines private (into the .c file)Added
(Plus)"Generate 'origin of code' comment" to add/remove comments to user supplied code to find origin elementsAdded

Stereotypes

(Plus)"const" for ActivityParameterNodes and operation parameters to support the const keywordAdded

Tagged Values

(Info)"ReferenceImpl" TaggedValues will be inherited from parents (package, class, operation,...)Changed

General

(Plus)Support for .eapx RepositoriesAdded
(Plus)Generating comments for "all" element notes used in behavior diagramsAdded
(Plus)Support to remove all Html style tags from notes/commentsAdded
(Plus)Checking if CallOperationAction target is refering to a class attribute and setting the structure reference/dereference according to attribute containment.
e.g.: target.method() vs. target->method()
Added
(Plus)Support of variables and defines in Association and Attribute multiplicityAdded
(Plus)Warning user and removing tailing ";" in generated conditionsAdded
(Plus)Allow ConditinalNode to define "else" Action (Version 2.3.2)Added
(Info)Update Requirement type check (checking for "requirement" in whole stereotype) (Version 2.3.2)Changed
(Info)Favour ObjectFlow over ActionPin direction (return parameters) (Version 2.3.2)Changed

Cosmetic

(Plus)Checking and generation "GenSrcDir" TaggedValue path directoryAdded
(Plus)Asking user for generation directory if "GenSrcDir" TaggedValue is missing (also in UML Debugger)Added
(Plus)Inform user about skipped elements during code generation (Version 2.3.2)Added
(Info)Removed unnecessary variables in generated Activities.Changed
(Info)Prefering Activity return type from ReturnParameterNode over Activity propertyChanged
(Info)Updated setup promt regarding Enterprise Architect prerequisite and install useraccountChanged
(Info)Association and Attribute multiplicity to work with only lowerbound setChanged
(Info)Only check skip code generation flag until generation package is reached (not above) (Version 2.3.2)Changed

Bugfixes

(Fehler)Typedef not supporting array definitions/multiplicityFixed
(Fehler)Illegal "this-pointer" parameter generation in Interface realized functionsFixed
(Fehler)UserCodeSync missing last update from code (only sometimes)Fixed
(Fehler)Error connecting to MySql repositoriesFixed
(Fehler)Array field will be generated when creating StateMachine instances via CompositionFixed
(Fehler)Fixed ODBC connection string resolving issue (for code generation and UmlDebugger) (version 2.3.1)Fixed
(Fehler)Fixed logging configuration discarding wrong attributes (version 2.3.1)Fixed
(Fehler)Updated Modelsettings to read from all root nodes (Version 2.3.2)Fixed
(Fehler)Action "RealExpression" reference check during generationFixed

Version 2.2


Tag Update

Because of previouse ambiguous usage and misconceptions we changed the User Code Section tag from:

/* UserCode{GUID}:Hash */ and /* UserCode{GUID} */

to:

/* SyncableUserCode{GUID}:Hash */ and /* SyncableUserCode{GUID} */

to avoid loosing any unsaved changes in your user code, sync your code before installing version 2.2

What's New

The underlying model access layer / framework for Embedded Engineer has been updated to Unique Mint which resulted in an overall performance boost.

Thanks to Unique Mint Embedded Engineer is now also capable of reading more and more precise model data.

Stereotypes

(plus)"static" for activities to suppress the generation of a "this-pointer"

Added

(plus)"switchCase" for ConditionalNodes to generate a "switch case" statement instead of "if ... elseif"

Added

(plus)"forLoop" for ConditionalNodes to generate a "for" instead of a "while" loop

Added

(plus)"typedef" for operations to support function pointers

Added

(plus)"functionPointer" on an attribute to support function pointers

Added

Tagged Values

(Plus)"FieldHeader" for attributes and parents (classes, packages) to support custom field headersAdded
(Plus)"FunctionPointer" for "functionPointer" attributes to specify the operation declarationAdded
(Plus)"Increment" for "forLoop" ConditinalNodes to set the incrementation partAdded
(Plus)"Condition" for "switchCase" ConditinalNodes to set the "switch" conditionAdded

General

(Plus)Signals implementation was updated to support multiple/custom Signals enumerationsAdded
(Plus)Added warning for transitions from inital states to pseudostatesAdded
(Plus)Added support for relative paths (originating from EAP file)

Added

(Plus)Added support for relative paths in compination with "LocalPaths"Added
(Plus)Added warning if Activity has return parameter but no "ActivityFinal"Added
(Plus)Implemented checking "scope" of nested elements to change their accessiblityAdded
(Plus)Added support to order/prioritize ControlFlows from Decisions (if ... elseif...)Added
(Plus)Visual Studio 2017 extension for UmlDebuggerAdded
(info)Updated serverity, for multiple default transitions originating from the same state, to errorChanged

Cosmetics

(Plus)Displaying: "User requested cancelation" and disabeling "Cancel" button after cancel.Added
(Plus)Updated progress view to show more information of generation stateAdded
(info)Improved error messages and error handling for code generationChanged
(info)Updated license texts for code generatorsChanged
(info)Changed user code tag to: "SyncableUserCode" because of previouse ambiguous usageChanged

Bugfixes

(Fehler)Updated trueValue and falseValue to "boolean by construct" (MISRA 2004 Appendix E: Boolean expressions)Fixed
(Fehler)Aggregation/Composition multiplicities are ignoredFixed
(Fehler)Missing notes for nested struct, enumerations and class elementsFixed
(Fehler)Private nested struct, enumerations and class elements are accessable due to included in the header fileFixed
(Fehler)Sequence error during ConditionalNodes generationFixed
(Fehler)Missing "this-pointer" on CallOperations actionsFixed
(Fehler)Error forwarding files to UmlDebugger when path to file contained spacesFixed
(Fehler)Field notes are not generated as commentsFixed
(Fehler)Updated switch case generation to support MISRA Rule 12.5Fixed

Visual Studio 2017

During installation of the Visual Studio extension in Visual Studio 2017 you might get an error:

The following extensions are not compatible with Visual Studio 2017. Installation may cause Visual Studio to be unstable.

The extension was tested with Visual Studio 2017 and no problems where found.

Unique Mint

Tests with the new Unique Mint framework has shown that the EAP models up to 300 MB are no problem.

Version 2.1

What's New

Model settings

(plus)Entry to customize clang format style optionsAdded
(plus)Entry to generate sub directories for each sub package

Added

(plus)Entry to generate includes in .c fileAdded
(plus)Entry to configure UserCodeStore (to define if usercode will be stored in Initial Code or Behavior field)Added

Stereotypes

(plus)"global" for "use" connectors to support global includes 

Added

(plus)"standard lib" for classes and interfaces to support std. lib includes
(include without ".h")
Added
(plus)"destructor" for operations to generate a destructor method in C++Added
(plus)"qobject" for classes to generate qt event macroAdded
(plus)"qslot" for operations to generate qt slotsAdded
(plus)"qsignal" for operations to generate qt signals

Added

Tagged Values

(plus)"FileHeader" for classes and parents (packges) to support custom file headersAdded
(plus)"MethodHeader" for operations and parents (classes, packages) to support custom operation headersAdded
(plus)"CustomExtension" for "use" connectors to allow configuration of .hxx, .hpp, ... includes of external librariesAdded
(plus)

"UsingNamespace" for "use" connectors to generate C++ using namespace [name]; statements

Added
(info)"NoCodeGen" updated to work for classes and parents (packages) to supress code generationChanged

General

(plus)Default argument generation for C++ functionsAdded
(plus)SmartFormat for header templates (file/method header) see https://github.com/scottrippey/SmartFormat.NET/ for documentationAdded
(plus)Order usings / includes dialogAdded
(plus)Visual Studio 2015 debugging extensionAdded
(info)Updated ISystem debugger to support winIDEA Version 9 (Tested with: Build 9.12.288 (63104))Changed
(info)Updated Clang formatter to: clang-format version 4.0.0 (tags/RELEASE_400/final)Changed
(info)Generation of code and includes for "Signals.h" only when neededChanged

Cosmetics

(info)Code generation progress dialog column autoresize to always show full widthChanged
(info)Generate empty User Code Sync comments for all elementsChanged

Bugfixes

(error)C code generation: private operations no longer included in header fileFixed
(error)Updated if generation to support MISRA Rule 12.5Fixed
(error)Added function prototype to C code generator to ensure C89 compatibilityFixed
(error)typedef used default value to redefine type (added support to use type field)Fixed

Version 2.0

Embedded Engineer 2.0 was released on October 14, 2015

 

When upgrading from Embedded Engineer 1.2, please see the upgrade notes.

What's New

(plus)Model Settings DialogAdded
(plus)User Code SynchronizationAdded
(plus)Requirements TrackingAdded
(plus)C++ Inheritance SupportAdded
(plus)Method Parameter DocumentationAdded
(info)

Added progress window for code generation

Added
(info)

Side by side installation of Embedded Engineer 2.0 and older versions

Added
(info)

Generate documentation for return value of methods

Added
(info)

virtual, pure modifiers for operations in C++ support

Added
(info)

const, IsQuery, inline modifiers for operations in C++ support

Added
(info)

ByReference, const (readonly stereotype) support

Added
(info)

enum documentation support

Added
(info)

protected visibility support (C++)

Added
(info)

Comment style "//" for C++ (instead of old school comments "/* ... */")

Added
(info)

Documentation comments "///" generation - e.g. documentation comments for methods, method parameters, ...

Added
(info)

Warning messages for logging - e.g. using aggregate connector and adding explicit member in class generates warning instead of error, because code will be generated correctly

Changed
(info)

Strings (constants) for array size support

Added
(info)

Source code formatting optimized

Changed
(info)

Infinite loop detection for state machines

Added
(info)

C++ changed to use this-> (instead of C me->)

Changed
(info)

Handle invalid path characters

Changed
(info)

UML Debugger highlight colors changed (readability on projector increased)

Changed
(info)

Activity parameters with InOut direction are now generated with pointer semantics

Changed
(info)

Pointer to paramter in CallBehavior Action added (pointer to struct for call behavior action to call an activity with in/out parameter)

Added
(info)

Support for code generation for elements which are not part of classes improved (i.e. structs in C)

Changed
(info)

Comments for do-actions

Added
(error)

struct generation in C

Fixed
(error)

Storage class generated as static when classifier containing the attribute is static

Fixed
(error)

Debug information for control flows

Fixed
(error)

Debug information for If Then Else chains

Fixed
(error)

private fields generation (in .h files and static behavior)

Fixed
(error)

Missing semicolon on LoopNodes in C++

Fixed
(error)

Using return parameter for activity returns - not the out parameter

Fixed
(error)

Private struct in static class generation

Fixed
(error)

Public const attributes in .h-file generation

Fixed
(error)

typedef classes generate behavior

Fixed
(error)

Invalid generated code for compound transitions with more than one "default" transition from a pseudo state

Fixed
(error)

Initial value for static attributes in classes with static stereotype support

Fixed

 

 

 

  • No labels