EmbeddedMontiArc issueshttps://git.rwth-aachen.de/groups/monticore/EmbeddedMontiArc/-/issues2019-11-07T21:31:09+01:00https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/simulators/RMIModelServer/-/issues/7Runtime model exchange2019-11-07T21:31:09+01:00Evgeny KusmenkoRuntime model exchangeCurrent situation: dll/so is fixed; if a new autopilot model is provided RmiModelServer needs to be recompiled.
Goal: Make the RMIModelServer parameterizable, e.g. via its command line interface with a new model, so that we don't need t...Current situation: dll/so is fixed; if a new autopilot model is provided RmiModelServer needs to be recompiled.
Goal: Make the RMIModelServer parameterizable, e.g. via its command line interface with a new model, so that we don't need to rebuild the RMIModelServer, whenever we want to test a new autopilot.
@jean.meurice for infoWei LuWei Lu2019-11-08https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMAM2RosMsg/-/issues/2Failing test2019-10-19T19:46:40+02:00Alexander David HellwigFailing testAlexander David HellwigAlexander David Hellwighttps://git.rwth-aachen.de/monticore/EmbeddedMontiArc/simulators/hardware_emulator/-/issues/3Struct ports2021-10-20T17:38:13+02:00Evgeny KusmenkoStruct portsplease extend the hw emulator to support struct typed ports;
Please post a suggestion how we can tackle this problem
@desAweis is responsible for this ticket
@jean.meurice please support Wei if he needs helpplease extend the hw emulator to support struct typed ports;
Please post a suggestion how we can tackle this problem
@desAweis is responsible for this ticket
@jean.meurice please support Wei if he needs helpJean MeuriceWei LuJean Meurice2019-11-22https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/languages/EmbeddedMontiArcMath/-/issues/1'abs' function not working properly2022-04-28T12:58:34+02:00Helge Simon Hartleb'abs' function not working properlyI recognized an issue with the 'abs' function of the EMAM modelling language.
![streamtest_error_abs](/uploads/308c0923b2a3103ee25a9e482ad19a0b/streamtest_error_abs.jpeg)
Reference: Streamtest of the Autopilot component by 'armin'
The ...I recognized an issue with the 'abs' function of the EMAM modelling language.
![streamtest_error_abs](/uploads/308c0923b2a3103ee25a9e482ad19a0b/streamtest_error_abs.jpeg)
Reference: Streamtest of the Autopilot component by 'armin'
The function is producing wrong outputs:
`abs(100) = 99; abs(0) = -1; abs(20) = 19`
[Autopilot.zip](/uploads/8777eb9fe6d0a84c2168810a50e39ee2/Autopilot.zip) (Component with streamtests)Alexander David HellwigAlexander David Hellwighttps://git.rwth-aachen.de/monticore/EmbeddedMontiArc/applications/mnistcalculator/-/issues/9Create Mvn Build2020-09-23T10:53:43+02:00Evgeny KusmenkoCreate Mvn BuildCreate pom.xml (using the streamtest-plugin)
make sure, project can be built using `mvn streamtest:streamtest-build` (therefore you need to add a training phase to the streamtest plugin)Create pom.xml (using the streamtest-plugin)
make sure, project can be built using `mvn streamtest:streamtest-build` (therefore you need to add a training phase to the streamtest plugin)Yuyuan LiuYuyuan Liu2019-11-11https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/applications/carlacomponents/-/issues/19Feedback2019-09-30T09:42:00+02:00Alexander David HellwigFeedback- [x] Remove generator jar from project, docu(only if it is not needed, users should build with maven-streamtest if possible)
Models:
- [x] Remove `<enableExecutionLogging>true</enableExecutionLogging>`(or set to false), as it is a debu...- [x] Remove generator jar from project, docu(only if it is not needed, users should build with maven-streamtest if possible)
Models:
- [x] Remove `<enableExecutionLogging>true</enableExecutionLogging>`(or set to false), as it is a debugging tool
- [x] Use latest maven-streamtest version
Bumper Bot
- [x] remove test port
- [x] fix indentation
- [x] write a small stream test
Autopilot Wrapper
- [x] fill example stream test(input ports) with plausible data from the carla ros bridge
Models
- [x] remove test port
- [x] convert port CalculateWrappedValues.tmp_vehicle into local variable(e.g. `29: Ego_Vehicle tmp_vehicle = vehicle_status.control`) (only works with newest streamtest version)
Roscpp:
- [x] Structure SetStructPortInstr for better readability since it is relatively long. Create paragraphs by adding whitespace and/or short comments as headers. You should NOT add a comment to every line.
- [x] Fix/Check array/matrix indexing with the new syntax. EMA uses MatLab convention: 1 references the first element of the array/matrix (instead of C++ where 0 references the first element)
General
- [x] Merge everything into master brancheshttps://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/emam2someip/-/issues/26Feedback2019-09-30T14:48:43+02:00Alexander David HellwigFeedback- [x] Link to someIp documentation
- [x] Document usage of example
- [x] Document usage of .tag files, small example, available fields and their meaning
- [x] Create small test with all supported data-types in EMAM2Middleware(with .tag f...- [x] Link to someIp documentation
- [x] Document usage of example
- [x] Document usage of .tag files, small example, available fields and their meaning
- [x] Create small test with all supported data-types in EMAM2Middleware(with .tag file)
- [x] In generator: Use new class (A) to encapsulate File and content of file, instead of two Lists.
- [x] In generator: create and use a utility function to write the files to disk(or use something like apacheCommonsIO [writeFile](https://commons.apache.org/proper/commons-io/javadocs/api-2.5/org/apache/commons/io/FileUtils.html#write(java.io.File,%20java.lang.CharSequence,%20java.nio.charset.Charset)))
- [x] Merge everything into master brancheshttps://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/emam2mqtt/-/issues/24Feedback2019-09-28T11:12:25+02:00Alexander David HellwigFeedback- [x] Link to MQTT documentation
- [x] add note to start broker e.g.`sudo /etc/init.d/mosquitto start` to documentation
- [x] Document usage of .tag files, small example, available fields and their meaning
- [x] remove msgField from MQTT...- [x] Link to MQTT documentation
- [x] add note to start broker e.g.`sudo /etc/init.d/mosquitto start` to documentation
- [x] Document usage of .tag files, small example, available fields and their meaning
- [x] remove msgField from MQTTConnectionSymbol, Examples
- [x] Create small test with all supported data-types in EMAM2Middleware(with .tag file)
- [x] In generator: Use new class (A) to encapsulate File and content of file, instead of two Lists.
- [x] In generator: Use createFile for Callbacks or move createFile to the new class (A)
- [x] In generator: Line 37: don't override all middleware symbols with empty MqttConnectionSymbols
- [ ] Merge everything into master brancheshttps://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMAM2Middleware/-/issues/33Failing EMADL Tests2019-09-04T21:13:34+02:00Alexander David HellwigFailing EMADL TestsThe tests
- de.monticore.lang.monticar.generator.middleware.CliTest#testEMADLAndRosGenerator
- de.monticore.lang.monticar.generator.middleware.CliTest#testSingleEMADLGenerator
- de.monticore.lang.monticar.generator.middleware.CliTest#tes...The tests
- de.monticore.lang.monticar.generator.middleware.CliTest#testEMADLAndRosGenerator
- de.monticore.lang.monticar.generator.middleware.CliTest#testSingleEMADLGenerator
- de.monticore.lang.monticar.generator.middleware.CliTest#testEMADLConfigFile
- de.monticore.lang.monticar.generator.middleware.GenerationTest#testEMADLMiddlewareGeneration
are all failing.https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/applications/mnistcalculator/-/issues/8Assertion fails with latest vesion of EMDAL2CPP2021-10-26T19:22:53+02:00Baran DalgicAssertion fails with latest vesion of EMDAL2CPP# Problem
Execution of calculator is failing at assertion after upgrading EMADL2CPP to version **0.3.6-SNAPSHOT**.
# execution command
```bash
./build/src/cpp/DigitCalculator resources/images/1.png resources/images/2.png resources/imag...# Problem
Execution of calculator is failing at assertion after upgrading EMADL2CPP to version **0.3.6-SNAPSHOT**.
# execution command
```bash
./build/src/cpp/DigitCalculator resources/images/1.png resources/images/2.png resources/images/3.png resources/images/4.png resources/images/5.png resources/images/6.png
```
# output
```bash
model/cNNCalculator.Network/model_newest-symbol.json ... 5422 bytes
model/cNNCalculator.Network/model_newest-0000.params ... 5008824 bytes
DigitCalculator: /home/dalbar/uni/sle/mn/mnistcalculator/mxnet/target/CNNPredictor_cNNCalculator_connector_predictor1.h:104: void CNNPredictor_cNNCalculator_connector_predictor1_0::init(const string&, const string&, const std::vector<std::__cxx11::basic_string<char> >&, const std::vector<std::vector<unsigned int> >&, const bool&): Assertion `handle' failed.
[1] 31350 abort (core dumped) ./build/src/cpp/DigitCalculator resources/images/1.png resources/images/2.png
```https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/applications/carlacomponents/-/issues/18Prepare for hand in2019-09-30T09:42:05+02:00Alexander David HellwigPrepare for hand inThings that should be done before hand in:
* [x] merge all code into the master branch of the original projects
- provide a (lightweight) documentation in the readme files of the projects. It should give other Students an idea on:
* [...Things that should be done before hand in:
* [x] merge all code into the master branch of the original projects
- provide a (lightweight) documentation in the readme files of the projects. It should give other Students an idea on:
* [x] how to install(linux or windows or docker) the project and its dependencies
* [x] how to use your project
* [x] where it is located in relation to other projects
* [x] link 1 or 2 test cases that demonstrate the main features of the project(if available)
- you can always link to external documentation
- keep it briefhttps://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/emam2mqtt/-/issues/23Prepare for hand in2019-10-14T14:20:31+02:00Alexander David HellwigPrepare for hand inThings that should be done before hand in:
- merge all code into the master branch of the original projects
- provide a (lightweight) documentation in the readme files of the projects. It should give other Students an idea on:
- how t...Things that should be done before hand in:
- merge all code into the master branch of the original projects
- provide a (lightweight) documentation in the readme files of the projects. It should give other Students an idea on:
- how to install(linux or windows or docker) the project and its dependencies
- how to use your project
- where it is located in relation to other projects
- link 1 or 2 test cases that demonstrate the main features of the project(if available)
- you can always link to external documentation
- keep it briefGeorg VinogradovJannis Joachim TölleMike GrüneGeorg Vinogradovhttps://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/emam2someip/-/issues/25Prepare for hand in2019-09-30T00:22:18+02:00Alexander David HellwigPrepare for hand inThings that should be done before hand in:
- merge all code into the master branch of the original projects
- provide a (lightweight) documentation in the readme files of the projects. It should give other Students an idea on:
- how t...Things that should be done before hand in:
- merge all code into the master branch of the original projects
- provide a (lightweight) documentation in the readme files of the projects. It should give other Students an idea on:
- how to install(linux or windows or docker) the project and its dependencies
- how to use your project
- where it is located in relation to other projects
- link 1 or 2 test cases that demonstrate the main features of the project(if available)
- you can always link to external documentation
- keep it briefhttps://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/emam2someip/-/issues/24Add support for more Port types2019-09-23T02:17:09+02:00Alexander David HellwigAdd support for more Port types# Goal
Until now we assumed that each Port has the type Q, but EMAM supports other basic types:
- Q for rational numbers, converted to double
- N for natural numbers, converted to int
- Z for whole numbers, also converted to int
- B for ...# Goal
Until now we assumed that each Port has the type Q, but EMAM supports other basic types:
- Q for rational numbers, converted to double
- N for natural numbers, converted to int
- Z for whole numbers, also converted to int
- B for boolean values, converted to bool
- (C for complex, you can ignore this)
You can get the Type-String of a port with `port.getTypeReference().getName()`.
Example code in Freemarker:
```freemarker
<#list model.getOutgoingPorts() as port>
<#switch port.getTypeReference().getName()>
<#case "Q">
// double
<#break>
<#case "N">
//int
<#break>
<#case "Z">
//int
<#break>
<#default>
//error
</#switch>
</#list>
```
## Suggestion
You can convert the whole number types(Z,N) by rounding a double:
```C++
//Subscriber
#include <math.h>
[...]
component->in1 = (int) round(dataFromMessage);
//Publisher
[...]
//Read data from component
double d = 1.0 * component->out1;
[...]
```
You can convert the boolean type(B) by checking a threshold:
```C++
//Subscriber
[...]
component->in1 = (dataFromMessage > 1.0e-10);
//Publisher
[...]
//Read data from component
double d = component->out1 ? 1.0 : 0.0;
[...]
```
Alternative:
Write and read the `byteArray` of the payload manually without conversions of doubles
## Deliverables
Adapt your templates, so that all generated publish and callback methods support the Port Types Q, B, Z, and N.https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/emam2mqtt/-/issues/22Add support for more Port types2019-08-29T20:23:01+02:00Alexander David HellwigAdd support for more Port types# Goal
Until now we assumed that each Port has the type Q, but EMAM supports other basic types:
- Q for rational numbers, converted to double
- N for natural numbers, converted to int
- Z for whole numbers, also converted to int
- B for ...# Goal
Until now we assumed that each Port has the type Q, but EMAM supports other basic types:
- Q for rational numbers, converted to double
- N for natural numbers, converted to int
- Z for whole numbers, also converted to int
- B for boolean values, converted to bool
- (C for complex, you can ignore this)
You can get the Type-String of a port with `port.getTypeReference().getName()`.
Example code in Freemarker:
```freemarker
<#list model.getOutgoingPorts() as port>
<#switch port.getTypeReference().getName()>
<#case "Q">
// double
<#break>
<#case "N">
//int
<#break>
<#case "Z">
//int
<#break>
<#default>
//error
</#switch>
</#list>
```
## Suggestion
Write/parse the values in standard String form
- Q -> 1.5
- N -> 1
- Z -> -1
- B -> false
### Alternative
You can convert the whole number types(Z,N) by rounding a double:
```C++
//Subscriber
*port_ = (int) round(value);
//Publisher
string value = to_string(1.0 * component->${pub.getName()});
```
Make sure that the pointer to port_ has the right type(int* in this case)
You can convert the boolean type(B) by checking a threshold:
```C++
//Subscriber
*port_ = (value > 1.0e-10);
//Publisher
string value = to_string(component->${pub.getName()} ? 1.0 : 0.0);
```
Make sure that the pointer to port_ has the right type(bool* in this case)
Alternative:
## Deliverables
Adapt your templates, so that all generated publish and callback methods support the Port Types Q, B, Z, and N.
You might have to generated multiple Callback classes(e.g. CallbackQ.cpp/.hpp, CallbackN.cpp/.hpp,...) or think of an other approach.Georg VinogradovJannis Joachim TölleMike GrüneGeorg Vinogradovhttps://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/emam2someip/-/issues/23Tag parsing2019-09-29T23:47:40+02:00Alexander David HellwigTag parsingCreate a parser that can read .tag files and turn them into SomeIPConnectionSymbols
# Deliverables
## EmbeddedMontiArc Project
In [.../tagging/middleware/someip](https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/languages/EmbeddedMo...Create a parser that can read .tag files and turn them into SomeIPConnectionSymbols
# Deliverables
## EmbeddedMontiArc Project
In [.../tagging/middleware/someip](https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/languages/EmbeddedMontiArc/tree/master/src/main/java/de/monticore/lang/embeddedmontiarc/tagging/middleware):
- [x] Add a SomeIPConnectionsSymbolCreator similar to [RosConnectionSymbolCreator](https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/languages/EmbeddedMontiArc/blob/master/src/main/java/de/monticore/lang/embeddedmontiarc/tagging/middleware/ros/RosConnectionSymbolCreator.java)
- Goal: Read a .tag file, convert it into SomeIPConnectionSymbols and add them the specified EMAPortSymbol or EMAPortInstanceSymbol. MontiCore/EmbeddedMontiArc automatically reads the file reading and preprocesses the data. Therefore you only need to implement a `TagSymbolCreator`
- [x] There should be no references to Ros in the new SymbolCreator. The main regex can be found in line 50.
- Online java regex checker: `http://www.regexplanet.com/advanced/java/index.html`
- [x] Add a SomeIPTagSchema similar to [RosToEmamTagSchema](https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/languages/EmbeddedMontiArc/blob/master/src/main/java/de/monticore/lang/embeddedmontiarc/tagging/middleware/ros/RosToEmamTagSchema.java)
- [x] Add a Testcase similar to [test/.../middleware/ros/TaggingTest](https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/languages/EmbeddedMontiArc/blob/master/src/test/java/de/monticore/lang/embeddedmontiarc/middleware/ros/TaggingTest.java).
- [x] you will need to add your Tag Schema to the tagging resolver here: https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/languages/EmbeddedMontiArc/blob/master/src/test/java/de/monticore/lang/embeddedmontiarc/AbstractTaggingResolverTest.java#L56
## EMAM2Middleware
- [x] pom.xml: Update the EmbeddedMontiArc dependency to the Version with your parser
- [x] DestributedTargetGeneratorCLI
- [x] resolve all SomeIPConnectionSymbols from the Symbol table. Example for ros: [here](https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMAM2Middleware/blob/master/src/main/java/de/monticore/lang/monticar/generator/middleware/cli/DistributedTargetGeneratorCli.java#L167)
- [x] the actual resolving is implemented [here](https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMAM2RosCpp/blob/master/src/main/java/de/monticore/lang/monticar/generator/roscpp/helper/TagHelper.java#L20) in RosCpp, you can choose in which Project you want to implement it.
- [x] Previous test case
- [x] Adapt: Don't hand add the SomeIPConnectionSymbols, build a .tag file, use your TagHelper(or equivalent) to resolve the SomeIPConnectionSymbols
- Example for Ros: https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMAM2Middleware/blob/master/src/test/java/de/monticore/lang/monticar/generator/middleware/Ros2GenerationTest.java#L60 and line 64https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/emam2mqtt/-/issues/21Tag parsing2019-08-29T20:23:01+02:00Alexander David HellwigTag parsingCreate a parser that can read .tag files and turn them into MQTTConnectionSymbols
# Deliverables
## EmbeddedMontiArc Project
In [.../tagging/middleware/mqtt](https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/languages/EmbeddedMontiA...Create a parser that can read .tag files and turn them into MQTTConnectionSymbols
# Deliverables
## EmbeddedMontiArc Project
In [.../tagging/middleware/mqtt](https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/languages/EmbeddedMontiArc/tree/master/src/main/java/de/monticore/lang/embeddedmontiarc/tagging/middleware):
- [x] Add a MQTTConnectionsSymbolCreator similar to [RosConnectionSymbolCreator](https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/languages/EmbeddedMontiArc/blob/master/src/main/java/de/monticore/lang/embeddedmontiarc/tagging/middleware/ros/RosConnectionSymbolCreator.java)
- Goal: Read a .tag file, convert it into MQTTConnectionSymbols and add them the specified EMAPortSymbol or EMAPortInstanceSymbol. MontiCore/EmbeddedMontiArc automatically reads the file reading and preprocesses the data. Therefore you only need to implement a `TagSymbolCreator`
- [x] There should be no references to Ros in the new SymbolCreator. The main regex can be found in line 50.
- Online java regex checker: `http://www.regexplanet.com/advanced/java/index.html`
- [x] Add a MQTTTagSchema similar to [RosToEmamTagSchema](https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/languages/EmbeddedMontiArc/blob/master/src/main/java/de/monticore/lang/embeddedmontiarc/tagging/middleware/ros/RosToEmamTagSchema.java)
- [x] Add a Testcase similar to [test/.../middleware/ros/TaggingTest](https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/languages/EmbeddedMontiArc/blob/master/src/test/java/de/monticore/lang/embeddedmontiarc/middleware/ros/TaggingTest.java).
- [x] you will need to add your Tag Schema to the tagging resolver here: https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/languages/EmbeddedMontiArc/blob/master/src/test/java/de/monticore/lang/embeddedmontiarc/AbstractTaggingResolverTest.java#L56
## EMAM2Middleware
Here we are waiting for the merge request (https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/languages/EmbeddedMontiArc/merge_requests/18) to proceed
- [x] pom.xml: Update the EmbeddedMontiArc dependency to the Version with your parser
- [x] DestributedTargetGeneratorCLI
- [x] resolve all MQTTConnectionSymbols from the Symbol table. Example for ros: [here](https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMAM2Middleware/blob/master/src/main/java/de/monticore/lang/monticar/generator/middleware/cli/DistributedTargetGeneratorCli.java#L167)
- [x] the actual resolving is implemented [here](https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMAM2RosCpp/blob/master/src/main/java/de/monticore/lang/monticar/generator/roscpp/helper/TagHelper.java#L20) in RosCpp, you can choose in which Project you want to implement it.
- [x] Previous test case
- [x] Adapt: Don't hand add the MQTTConnectionSymbols, build a .tag file, use your TagHelper(or equivalent) to resolve the MQTTConnectionSymbols
- Example for Ros: https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMAM2Middleware/blob/master/src/test/java/de/monticore/lang/monticar/generator/middleware/Ros2GenerationTest.java#L60 and line 64Georg VinogradovJannis Joachim TölleMike GrüneGeorg Vinogradovhttps://git.rwth-aachen.de/monticore/EmbeddedMontiArc/simulators/server/-/issues/31Password for user "Simulator" on the distributed Ubuntu 16.04 Image2019-08-03T19:27:19+02:00ulfetPassword for user "Simulator" on the distributed Ubuntu 16.04 ImageIf it was announced before, it was on my mistake to not hear it.
I tried running the image, and it asks me password for the user named "Simulator" on the login screen.
Should I opt for Guest session?
(I tried couple of cheesy guesses o...If it was announced before, it was on my mistake to not hear it.
I tried running the image, and it asks me password for the user named "Simulator" on the login screen.
Should I opt for Guest session?
(I tried couple of cheesy guesses of mine, to no avail)
The reason that I switched to this disk image is to have compatibility.
I pulled all the new changes from the repositories, and I encountered with the same situation I had before:
RPC does not update the car position.
If needed, I can provide what I encountered with, and how it is different from the previous one (that with the help of the superiors at the meeting, we solved and made it update the car's position).
Best.Hengwen Zhanghengwen.zhang@rwth-aachen.deHengwen Zhanghengwen.zhang@rwth-aachen.dehttps://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/emam2someip/-/issues/22Fix: create folder before writting files in generate method2019-08-29T14:00:50+02:00Alexander David HellwigFix: create folder before writting files in generate methode.g.
```java
File directory = new File(generationTargetPath);
directory.mkdirs();
```e.g.
```java
File directory = new File(generationTargetPath);
directory.mkdirs();
```https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMADL2CPP/-/issues/13Move to EMADL2020-10-29T16:22:18+01:00Evgeny KusmenkoMove to EMADLCan this clas be moved to EMADL language project?
https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMADL2CPP/blob/develop/src/main/java/de/monticore/lang/monticar/emadl/generator/EMADLAbstractSymtab.javaCan this clas be moved to EMADL language project?
https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMADL2CPP/blob/develop/src/main/java/de/monticore/lang/monticar/emadl/generator/EMADLAbstractSymtab.javaNicola GattoEyüp HarputluNicola Gatto