EMAM2Cpp issueshttps://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMAM2Cpp/-/issues2021-02-22T13:21:34+01:00https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMAM2Cpp/-/issues/29Wrong execution order of generated c file2021-02-22T13:21:34+01:00Malte HeithoffWrong execution order of generated c fileRunning test
https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMAM2Cpp/blob/heithoff_bug/src/test/java/de/monticore/lang/monticar/generator/heithoff/SListBug.java
generates cpp from the ```PacManWrapper```. The instanc...Running test
https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMAM2Cpp/blob/heithoff_bug/src/test/java/de/monticore/lang/monticar/generator/heithoff/SListBug.java
generates cpp from the ```PacManWrapper```. The instance ```searchLeft```
https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMAM2Cpp/blob/heithoff_bug/src/test/resources/de/rwth/pacman/heithoff2/BFS/Paths.emam#L23
from component ```BFSearch``` https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMAM2Cpp/blob/heithoff_bug/src/test/resources/de/rwth/pacman/heithoff2/BFS/BFSearch.emam
will be compiled to https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMAM2Cpp/blob/heithoff_bug/src/test/resources/de/rwth/pacman/heithoff2/BFS/de_rwth_pacman_pacManWrapper_controller_safePaths_searchLeft.h
(or in target/generated-sources-cpp/de/rwth/pacman/PacManWrapper/de_rwth_pacman_pacManWrapper_controller_safePaths_searchLeft.h)
Here the instance ```endSafe``` will be executed before every other instance. https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMAM2Cpp/blob/heithoff_bug/src/test/resources/de/rwth/pacman/heithoff2/BFS/de_rwth_pacman_pacManWrapper_controller_safePaths_searchLeft.h#L85
But the component should be executed last.Malte HeithoffMalte Heithoffhttps://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMAM2Cpp/-/issues/12Visualisation value access hook2020-07-02T19:25:27+02:00Sascha Niklas SchneidersVisualisation value access hookAdapt generator to have a new flag, that provides access for webassembly/javascript values after current executionAdapt generator to have a new flag, that provides access for webassembly/javascript values after current executionSascha Niklas SchneidersSascha Niklas Schneidershttps://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMAM2Cpp/-/issues/14Vector colon expression generates invalid code!2018-07-18T17:57:22+02:00Christoph RichterVector colon expression generates invalid code!Expressions:
```
Q^{1,10} A = 1:10;
Q^{1,5} B = 1:2:10;
```
generates the following invalid expression:
```
rowvec A = ;
rowvec B = ;
```Expressions:
```
Q^{1,10} A = 1:10;
Q^{1,5} B = 1:2:10;
```
generates the following invalid expression:
```
rowvec A = ;
rowvec B = ;
```Christoph RichterChristoph Richterhttps://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMAM2Cpp/-/issues/15Sum command for armadillo not supported2018-07-13T12:27:03+02:00Christoph RichterSum command for armadillo not supportedUntil now EMAM only supports `sum(X)` which creates `accu(X)` in armadillo.
Nevertheless armadillo and MATLAB also support `sum(X,1)` or `sum(X,2)` to only sum rows or columns. Would be nice if EMAM also supports this.Until now EMAM only supports `sum(X)` which creates `accu(X)` in armadillo.
Nevertheless armadillo and MATLAB also support `sum(X,1)` or `sum(X,2)` to only sum rows or columns. Would be nice if EMAM also supports this.Christoph RichterChristoph Richterhttps://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMAM2Cpp/-/issues/25StreamTest matrix ports input value setting2018-08-16T17:39:48+02:00Sascha Niklas SchneidersStreamTest matrix ports input value settingThe "component.${portName} = ..." part was not generated correctly for matrices used in models like detection.ObjectDetector1The "component.${portName} = ..." part was not generated correctly for matrices used in models like detection.ObjectDetector1Sascha Niklas SchneidersSascha Niklas Schneidershttps://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMAM2Cpp/-/issues/24StreamTest Matrix output generation check not working properly2018-08-16T17:39:40+02:00Sascha Niklas SchneidersStreamTest Matrix output generation check not working properlyThe "REQUIRE(..)" part was not generated correctly for matrices used in models like detection.ObjectDetector1The "REQUIRE(..)" part was not generated correctly for matrices used in models like detection.ObjectDetector1Sascha Niklas SchneidersSascha Niklas Schneidershttps://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMAM2Cpp/-/issues/10Stream-Test für alle Modelle für EmbeddedMontiArcStudio generieren2020-07-02T19:25:40+02:00vonWencksternStream-Test für alle Modelle für EmbeddedMontiArcStudio generieren- ein JUnit-Test für Autopilot
- dieser test alle EMAM-Dateien die da sind
- ein JUnit-Test für Cluster
- ein JUnit-Test für PacMan
Zum Generieren der Tests die Version, den Compiler von EmbeddedMontiArcStudio nehmen- ein JUnit-Test für Autopilot
- dieser test alle EMAM-Dateien die da sind
- ein JUnit-Test für Cluster
- ein JUnit-Test für PacMan
Zum Generieren der Tests die Version, den Compiler von EmbeddedMontiArcStudio nehmenhttps://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMAM2Cpp/-/issues/3No boolen constants available2020-07-02T19:29:49+02:00Malte HeithoffNo boolen constants availableIn an "implementation Math" block you cannot write:
portA = true;
Only
portA = 1;
works.In an "implementation Math" block you cannot write:
portA = true;
Only
portA = 1;
works.Sascha Niklas SchneidersSascha Niklas Schneidershttps://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMAM2Cpp/-/issues/18Matrix containing variables is created as constant2018-07-27T10:42:35+02:00Christoph RichterMatrix containing variables is created as constantIf a matrix definition contains a variable it is defined as constant. This creates wrong results if the matrix was modified in any situation. Also ports are always passed as a constant value.
Example:
```
ports in Q in1,
...If a matrix definition contains a variable it is defined as constant. This creates wrong results if the matrix was modified in any situation. Also ports are always passed as a constant value.
Example:
```
ports in Q in1,
out Q out1;
implementation Math{
Q^{3} A = [0, in1, 1];
out1 = sum(A);
}
```
creates C++ code:
```
class test_portInMatrixDefinition{
public:
double in1;
double out1;
rowvec CONSTANTCONSTANTVECTOR0;
void init()
{
CONSTANTCONSTANTVECTOR0 = rowvec(3);
CONSTANTCONSTANTVECTOR0(0,0) = 0;
CONSTANTCONSTANTVECTOR0(0,1) = in1;
CONSTANTCONSTANTVECTOR0(0,2) = 1;
}
void execute()
{
colvec A = CONSTANTCONSTANTVECTOR0;
out1 = (accu(A));
}
```
https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMAM2Cpp/-/issues/35extends the commands with min/max function2020-07-02T19:30:42+02:00Ahmed Diabextends the commands with min/max functionhttps://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMAM2Cpp/-/issues/34extends the commands with ceil function2020-01-01T09:33:18+01:00Ahmed Diabextends the commands with ceil functionAhmed DiabAhmed Diabhttps://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMAM2Cpp/-/issues/30Execute with logging: Name collision2019-05-23T16:10:24+02:00Alexander David HellwigExecute with logging: Name collisionfunction arma::log(as in logarithm) has a name collision with log(as in write to log)function arma::log(as in logarithm) has a name collision with log(as in write to log)Alexander David HellwigAlexander David Hellwighttps://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMAM2Cpp/-/issues/13Element-wise multiplication does not generate correct armadillo code!2018-07-18T17:56:53+02:00Christoph RichterElement-wise multiplication does not generate correct armadillo code!Math statements:
```
Q^{2,2} A = [1,1;1,1];
Q^{2,2} B = [1,2;3,4];
Q^{2,2} C = A .* B;
```
produce wrong armadillo C++ code:
`mat C = A .* B;`
Armadillo uses % for element wise multiplication.Math statements:
```
Q^{2,2} A = [1,1;1,1];
Q^{2,2} B = [1,2;3,4];
Q^{2,2} C = A .* B;
```
produce wrong armadillo C++ code:
`mat C = A .* B;`
Armadillo uses % for element wise multiplication.Christoph RichterChristoph Richterhttps://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMAM2Cpp/-/issues/9Compiler should generate from main.txt2020-07-02T19:26:33+02:00Ferdinand Alexander MehlanCompiler should generate from main.txthttps://git.rwth-aachen.de/monticore/EmbeddedMontiArc/utilities/EMAStudioBuilder/issues/1https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/utilities/EMAStudioBuilder/issues/1Sascha Niklas SchneidersSascha Niklas Schneidershttps://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMAM2Cpp/-/issues/17Column Vector is not initialized if declared with 2 dimensions2018-08-08T13:46:26+02:00Christoph RichterColumn Vector is not initialized if declared with 2 dimensionsFor EMAM statement `Q^{n,1} a;` the following C++ code is generated: `colvec a;` This vector can be used in EMAM but is not initialized in C++.For EMAM statement `Q^{n,1} a;` the following C++ code is generated: `colvec a;` This vector can be used in EMAM but is not initialized in C++.Christoph RichterChristoph Richterhttps://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMAM2Cpp/-/issues/19C++ float division2018-08-08T15:51:32+02:00Christoph RichterC++ float divisionFloating point division delivers wrong results in C++.
`Q x = 1 / 2`;
The value of `x` should be 0.5.
The generated C++ code looks like:
`double x = 1 / 2`;
In this case C++ performs an integer division, because `1` and `2` are ha...Floating point division delivers wrong results in C++.
`Q x = 1 / 2`;
The value of `x` should be 0.5.
The generated C++ code looks like:
`double x = 1 / 2`;
In this case C++ performs an integer division, because `1` and `2` are handled as Integer values. The (wrong result is `x == 0`).Christoph RichterChristoph Richterhttps://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMAM2Cpp/-/issues/27Build FAILED because of Tests2018-12-27T13:49:59+01:00Carlos Alfredo Yeverino RodriguezBuild FAILED because of TestsI tried to "install" EMAM2Cpp but I got the following errors:
Results :
Tests in error:
TestsGenTest.testMySuperAwesomeComponent1:54 » ResolvedSeveralEntries 0xA4095 ...
GenerateCMakeTest.floatDivisionTest:127 » ResolvedSeveralEnt...I tried to "install" EMAM2Cpp but I got the following errors:
Results :
Tests in error:
TestsGenTest.testMySuperAwesomeComponent1:54 » ResolvedSeveralEntries 0xA4095 ...
GenerateCMakeTest.floatDivisionTest:127 » ResolvedSeveralEntries 0xA4095 Found...
GenerateCMakeTest.testCMakeStreamTestGenerationForBasicPortsMath:91 » ResolvedSeveralEntries
AutomaticStreamTestGenerationTest.testCLIExample:230->testGenCPPFilesAndExec:293 » IndexOutOfBounds
Tests run: 194, Failures: 0, Errors: 4, Skipped: 13
I installed first EmbeddedMontiArcMath and MontiMath before installing EMAM2Cpp.Alexander David HellwigAlexander David Hellwighttps://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMAM2Cpp/-/issues/23Automatic stream test execution in the generator2020-07-02T19:22:47+02:00Sascha Niklas SchneidersAutomatic stream test execution in the generatorThe generator should be able to execute stream tests for an emam model to ensure that it still works.
(Enables usage of tests that check the behaviour and not that the generated source code is the same)The generator should be able to execute stream tests for an emam model to ensure that it still works.
(Enables usage of tests that check the behaviour and not that the generated source code is the same)Sascha Niklas SchneidersSascha Niklas Schneidershttps://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMAM2Cpp/-/issues/41add threshold command from OpenCV2020-03-20T09:13:51+01:00Ahmed Diabadd threshold command from OpenCVEvgeny KusmenkoAhmed DiabEvgeny Kusmenkohttps://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMAM2Cpp/-/issues/43add rectangle command from OpenCV2020-01-13T14:13:33+01:00Ahmed Diabadd rectangle command from OpenCVEvgeny KusmenkoAhmed DiabEvgeny Kusmenko