EmbeddedMontiArc issueshttps://git.rwth-aachen.de/groups/monticore/EmbeddedMontiArc/-/issues2021-02-01T16:26:20+01:00https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMADL2CPP/-/issues/18Bug: Access struct member of a port array2021-02-01T16:26:20+01:00Andreas WahlenBug: Access struct member of a port arrayAssume one has created an own struct type and wants to define an array of ports of this type.
Example:
```
struct MyStruct {
Q myMember;
}
```
```
component MyComponent {
port
in MyStruct inputStruct[2],
out Q ...Assume one has created an own struct type and wants to define an array of ports of this type.
Example:
```
struct MyStruct {
Q myMember;
}
```
```
component MyComponent {
port
in MyStruct inputStruct[2],
out Q outputMember;
implementation Math {
outputMember = inputStruct(1).myMember; // could not parse...
}
}
```
The problem seems to be the inline access of an element of the array and the member of this element at once. It works when one puts it into separat lines.Evgeny KusmenkoEvgeny Kusmenkohttps://git.rwth-aachen.de/monticore/EmbeddedMontiArc/languages/Struct/-/issues/1Structs don't allow arrays2021-01-26T18:34:26+01:00Martin FitzkeStructs don't allow arraysStructs do not allow C-like arrays of any type.
```
struct MyStruct {
Q someArray[2];
MyStruct2 myStruct2;
}
```Structs do not allow C-like arrays of any type.
```
struct MyStruct {
Q someArray[2];
MyStruct2 myStruct2;
}
```Evgeny KusmenkoEvgeny Kusmenkohttps://git.rwth-aachen.de/monticore/EmbeddedMontiArc/simulators/basic-simulator/-/issues/2Feature Request: Scenario folders2021-10-20T17:57:37+02:00TamfaetFeature Request: Scenario foldersIt would be really convenient to provide a path to other scenario files. Thus project files can be contained in their corresponding projects and no need for copy-pasting would be needed.It would be really convenient to provide a path to other scenario files. Thus project files can be contained in their corresponding projects and no need for copy-pasting would be needed.https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/simulators/basic-simulator/-/issues/1Laggy simulation2021-10-20T17:46:55+02:00TamfaetLaggy simulationIt seems, that the simulator needs to wait internally for things. When I run it, my CPU utilization is at maximum at 15 %. Still the Simulator is not able to reach 30 FPS.
Maybe some parallelization could help there.It seems, that the simulator needs to wait internally for things. When I run it, my CPU utilization is at maximum at 15 %. Still the Simulator is not able to reach 30 FPS.
Maybe some parallelization could help there.https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMADL2CPP/-/issues/17Create default Dockerfile to be able to test basic scripts2020-11-20T16:27:50+01:00Andreas WahlenCreate default Dockerfile to be able to test basic scriptsCreate a Dockerfile and add it to the repository to allow testing of EMADL models using the streamtest plugin.
Something like that would work (dependency is a local `jdk-8u271-linux-x64.tar.gz` file which is the Oracle JDK 8):
```docke...Create a Dockerfile and add it to the repository to allow testing of EMADL models using the streamtest plugin.
Something like that would work (dependency is a local `jdk-8u271-linux-x64.tar.gz` file which is the Oracle JDK 8):
```docker
FROM ubuntu:bionic
RUN apt update && apt install -y --no-install-recommends maven g++ make cmake libarmadillo-dev
WORKDIR /root
COPY jdk-8u271-linux-x64.tar.gz .
RUN tar -xzf jdk-8u271-linux-x64.tar.gz
RUN rm jdk-8u271-linux-x64.tar.gz
RUN mv jdk1.8.0_271 /opt
RUN update-alternatives --install "/usr/bin/java" "java" "/opt/jdk1.8.0_271/bin/java" 1
RUN update-alternatives --set "java" "/opt/jdk1.8.0_271/bin/java"
```
A corresponding `.gitlab-ci.yml` would look like this (settings.xml and pom.xml files are mandatory):
```yml
stages:
- integration
testIIR:
stage: integration
image: registry.git.rwth-aachen.de/se-student/ws2021/labs/connectedcars/ema
script:
- mvn streamtest:streamtest-execute -s settings.xml
except:
changes:
- README.md
- .gitignore
- .gitkeep
```
In the mean time: Feel free to choose [this image](https://git.rwth-aachen.de/se-student/ws2021/labs/connectedcars/ema/container_registry) for testing of basic models (which do not have any specific dependencies)Evgeny KusmenkoEvgeny Kusmenkohttps://git.rwth-aachen.de/monticore/EmbeddedMontiArc/simulators/simulation/-/issues/22Improve the "Running"-Part for the basic simulator2021-02-26T16:24:51+01:00Ahmed DiabImprove the "Running"-Part for the basic simulator- For people who are not familiar with the term "compiling", it will be difficult to realize that the `install.sh` file in the root directory is meant by it.
- Also, you will have to double-check that the contents of this file is for co...- For people who are not familiar with the term "compiling", it will be difficult to realize that the `install.sh` file in the root directory is meant by it.
- Also, you will have to double-check that the contents of this file is for compiling, since the term `install.sh` is not mentioned in the wiki.
see -> [The basic simulator](https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/simulators/simulation/-/wikis/user-docs/The-basic_simulator#running)
I would prefer to mention for the compiling file with the term `install.sh` or `install.bat`Evgeny KusmenkoEvgeny Kusmenkohttps://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/CNNArch2Gluon/-/issues/4Check if if-else is required2020-11-12T19:20:19+01:00Julian Johannes Steinsberger-DührßenCheck if if-else is requiredhttps://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/CNNArch2Gluon/-/blob/master/src/main/resources/templates/gluon/CNNSupervisedTrainer.ftl#L323https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/CNNArch2Gluon/-/blob/master/src/main/resources/templates/gluon/CNNSupervisedTrainer.ftl#L323Evgeny KusmenkoEvgeny Kusmenkohttps://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMADL2CPP/-/issues/16Generator cannot resolve port2020-11-11T13:13:04+01:00Mattis HoppeGenerator cannot resolve portI have 3 emadl files containing:
```
component Add{
ports
in Q num1,
in Q num2,
out Q erg;
implementation Math{
erg = num1 + num2;
}
}
```
```
component Add1{
ports
in Q testin,
out Q testout;
instance Add add;
connect te...I have 3 emadl files containing:
```
component Add{
ports
in Q num1,
in Q num2,
out Q erg;
implementation Math{
erg = num1 + num2;
}
}
```
```
component Add1{
ports
in Q testin,
out Q testout;
instance Add add;
connect testin -> add.num1;
connect testin -> add.num2;
connect add.erg -> testout;
}
```
```
component Add2{
ports
in Q test1,
out Q test2;
instance Add1 adder;
connect test1 -> adder.testin;
connect adder.testout -> test2;
}
```
Building Add and Add1 works just fine, but as soon as I try to build Add2 I get following Error-message:
```
[WARN] name of connector's source/target does has two parts: instance.port, cannot resolve port
Exception in thread "main" java.lang.NullPointerException
at de.monticore.lang.monticar.generator.cpp.converter.PortConverter.convertPortSymbolToVariable(PortConverter.java:59)
at de.monticore.lang.monticar.generator.cpp.converter.PortConverter.convertPortSymbolToVariable(PortConverter.java:48)
at de.monticore.lang.monticar.generator.cpp.converter.PortConverter.getVariableForPortSymbol(PortConverter.java:33)
at de.monticore.lang.monticar.generator.cpp.converter.ComponentConverterMethodGeneration.generateConnectors(ComponentConverterMethodGeneration.java:85)
at de.monticore.lang.monticar.generator.cpp.converter.ComponentConverterMethodGeneration.generateExecuteMethodInner(ComponentConverterMethodGeneration.java:70)
at de.monticore.lang.monticar.generator.cpp.converter.ComponentConverterMethodGeneration.generateExecuteMethod(ComponentConverterMethodGeneration.java:61)
at de.monticore.lang.monticar.generator.cpp.converter.ComponentConverter.convertComponentSymbolToBluePrint(ComponentConverter.java:99)
at de.monticore.lang.monticar.generator.cpp.converter.ComponentConverter.convertComponentSymbolToBluePrint(ComponentConverter.java:368)
at de.monticore.lang.monticar.generator.cpp.LanguageUnitCPP.generateBluePrints(LanguageUnitCPP.java:64)
at de.monticore.lang.monticar.generator.cpp.GeneratorCPP.generateString(GeneratorCPP.java:159)
at de.monticore.lang.monticar.emadl.generator.EMADLGenerator.generateSubComponents(EMADLGenerator.java:636)
at de.monticore.lang.monticar.emadl.generator.EMADLGenerator.generateComponent(EMADLGenerator.java:549)
at de.monticore.lang.monticar.emadl.generator.EMADLGenerator.generateSubComponents(EMADLGenerator.java:648)
at de.monticore.lang.monticar.emadl.generator.EMADLGenerator.generateComponent(EMADLGenerator.java:549)
at de.monticore.lang.monticar.emadl.generator.EMADLGenerator.generateStrings(EMADLGenerator.java:395)
at de.monticore.lang.monticar.emadl.generator.EMADLGenerator.generateFiles(EMADLGenerator.java:219)
at de.monticore.lang.monticar.emadl.generator.EMADLGenerator.generate(EMADLGenerator.java:125)
at de.monticore.lang.monticar.emadl.generator.EMADLGeneratorCli.runGenerator(EMADLGeneratorCli.java:148)
at de.monticore.lang.monticar.emadl.generator.EMADLGeneratorCli.main(EMADLGeneratorCli.java:72)
```
Changing variablenames etc. does not work either. For building I am using version 0.4.3 of the generatorEvgeny KusmenkoEvgeny Kusmenkohttps://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMAM2Cpp/-/issues/46Index conversion bug2020-09-30T20:21:49+02:00Sascha DewesIndex conversion bugThere seems to be a bug with the conversion from EMA indices to Cpp indices. In the following example it looks like the ceil function was mistaken for an array as the generator applies the decrementation twice to the inputarray index.
I...There seems to be a bug with the conversion from EMA indices to Cpp indices. In the following example it looks like the ceil function was mistaken for an array as the generator applies the decrementation twice to the inputarray index.
Input Code:
```
implementation Math {
for i=1:3
outputarray(i) = ceil(inputarray(i));
end
}
```
Output Code:
```
void execute()
{
for( auto i=1;i<=3;++i){
outputarray(i-1) = ceil(inputarray(i-1-1));
}
}
```
The same Problem occurs when there is no actual array inside the function brackets.
Input Code:
```
implementation Math {
for i=1:3
Q x = inputarray(i);
outputarray(i) = ceil(x);
end
}
```
Output Code:
```
void execute()
{
for( auto i=1;i<=3;++i){
double x = inputarray(i-1);
outputarray(i-1) = ceil(x-1);
}
}
```https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/applications/mnistcalculator/-/issues/10Caffe 2 and MXNet backends fail2021-12-07T12:52:33+01:00Evgeny KusmenkoCaffe 2 and MXNet backends failCaffe 2 and MXNet versions fail and the pipeline has been disabledCaffe 2 and MXNet versions fail and the pipeline has been disabledhttps://git.rwth-aachen.de/monticore/EmbeddedMontiArc/applications/reinforcement_learning/forestrl/-/issues/4Evaluation des Agenten2020-08-21T11:36:04+02:00Evgeny KusmenkoEvaluation des AgentenEs soll geprüft werden, wie gut die Entscheidungen des Agenten sind. Dazu sind folgende Ansätze angedacht:
* Vergleich mit Random-Algorithmus
* Vergleich mit Regelbasierten Ansätzen
* Greedy
* ggf. weitereEs soll geprüft werden, wie gut die Entscheidungen des Agenten sind. Dazu sind folgende Ansätze angedacht:
* Vergleich mit Random-Algorithmus
* Vergleich mit Regelbasierten Ansätzen
* Greedy
* ggf. weitereSascha DewesSascha Deweshttps://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMAMOpt2Cpp/-/issues/2Problem classification2020-08-19T19:27:07+02:00Evgeny KusmenkoProblem classificationOptimization problems can be classified into different categories, cf. thesis of Christoph Richter, e.g. linear, quadratic, convex, etc.
EMAMOpt2CPP provides a [class](https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMA...Optimization problems can be classified into different categories, cf. thesis of Christoph Richter, e.g. linear, quadratic, convex, etc.
EMAMOpt2CPP provides a [class](https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMAMOpt2Cpp/-/blob/master/src/main/java/de/monticore/lang/monticar/generator/cpp/optimizationSolver/problem/OptimizationProblemClassification.java
) detecting the problem class:
However, it seems to eb buggy. The corresponding [test](https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMAMOpt2Cpp/-/blob/master/src/test/java/de/monticore/lang/monticar/generator/cpp/optimizationSolver/problem/OptimizationProblemClassificationTest.java) has not been implemented.
Please investigate and try to fix this. We need a classification to enable an appropriate choice of solvers and also to possibly forbid some classes in safety critical systems.Jan Philipp HallerJan Philipp Haller2020-09-02https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/simulators/simulation/-/issues/21Docu TODO2021-10-24T17:07:31+02:00Hengwen Zhanghengwen.zhang@rwth-aachen.deDocu TODO## User-docs
- [ ] "Autopilot configuration": What to specify ? Quick overview of compiling/running EMA-based autopilots ?
- [ ] SimLang/CarLang/MontiCore links in "Introduction to MontiSim"
- [ ] basic-sim "link to maven tutorial"
## ...## User-docs
- [ ] "Autopilot configuration": What to specify ? Quick overview of compiling/running EMA-based autopilots ?
- [ ] SimLang/CarLang/MontiCore links in "Introduction to MontiSim"
- [ ] basic-sim "link to maven tutorial"
## Dev-docs
- Intro
- [ ] "Intro" text?
- [ ] Overview of next sections & pages
- Simulation
- [ ] Properties: registering the classes (+link to JSON system?)
- [ ] Simulation Methods -> TODOs in wiki page
- [ ] Simulator class and simulation data
- EE-System
- [ ] EE System -> TODOs in wiki page
- [ ] Various EEComponents: explanation of their inner workings
- [ ] EEComponents Development: "How to create an EEComponent sub-class"
- [ ] EE Message reference: which component sends which message and with what type
- World & Geometry
- [ ] OSM loading
- Vehicles
- [ ] Vehicles overview
- [ ] Tasks
- [ ] PhysicalValues
- [ ] PowerTrain
- [ ] Collision: Vehicle objects and hitboxes somewhere?
- [ ] Rigidbody physics
- Visualizations
- [ ] basic-simulator
- [ ] debug-viewer classes (Viewer2D, PhysicsDebug, ...)
- General/Commons
- [ ] Commons Overview
- [ ] Describe "polygon-convexer" ?
- [ ] JSON-Serializer
## Other
- [ ] Move & update documentation in 'hardware_emulator/readme.md'
- [ ] In the `simulation.wiki` repository, there are a bunch of old documentation files under `TO_SORT`. These have to be integrated in the new documentation (or simply deleted).
- [ ] Add in Code: Link to relevant docu pageshttps://git.rwth-aachen.de/monticore/EmbeddedMontiArc/simulators/simulation/-/issues/20Scenario/Tasks/Objectives2020-11-17T17:08:54+01:00Jean MeuriceScenario/Tasks/Objectives## Goal
Design and implement the internal objects for describing simulation and vehicle goals.
## Ideas
- A scenario contains **Tasks** for every Vehicle.
- The Tasks are embedded in the VehicleConfig and initiated by the **VehicleBuilde...## Goal
Design and implement the internal objects for describing simulation and vehicle goals.
## Ideas
- A scenario contains **Tasks** for every Vehicle.
- The Tasks are embedded in the VehicleConfig and initiated by the **VehicleBuilder**.
- The simulator keeps a reference list to "TaskRunners" (Vehicle would implement that interface) to check their completion status (or failure).
- The simulator calls "Status checks" on all the registered task runners after every simulation step.
- The Simulator.finished() method checks whether tasks are still pending or the maximum simulation duration is elapsed.Evgeny KusmenkoHengwen Zhanghengwen.zhang@rwth-aachen.deJean MeuriceEvgeny Kusmenkohttps://git.rwth-aachen.de/monticore/EmbeddedMontiArc/languages/MontiMath/-/issues/5Rename Rules2020-08-06T14:36:31+02:00Evgeny KusmenkoRename RulesStatement -> EMAStatement
Expression -> EMAExpression
@christian.kirchhof fyiStatement -> EMAStatement
Expression -> EMAExpression
@christian.kirchhof fyiHan ZhangHan Zhanghttps://git.rwth-aachen.de/monticore/EmbeddedMontiArc/utilities/monticore-lsp-commons/-/issues/3Multiple models bases in same workspace2020-03-08T13:35:26+01:00Alexander David HellwigMultiple models bases in same workspaceSituation:
```
workspace_root
+ model_root_a
+ /pack/a/model.lang <- includes package pack.a;
...
+ model_root_b
+ /other/pack/b/model2.lang <- includes package other.pack.b;
```
- [x] ModelFileCache creates temp Paths for each ...Situation:
```
workspace_root
+ model_root_a
+ /pack/a/model.lang <- includes package pack.a;
...
+ model_root_b
+ /other/pack/b/model2.lang <- includes package other.pack.b;
```
- [x] ModelFileCache creates temp Paths for each model root
- [x] Symtabs are created accordinglyhttps://git.rwth-aachen.de/monticore/EmbeddedMontiArc/utilities/monticore-lsp-commons/-/issues/2Catch UnsupportedOperation in MutliLangDocumentService2020-03-07T18:18:46+01:00Alexander David HellwigCatch UnsupportedOperation in MutliLangDocumentServicehttps://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMAM2Cpp/-/issues/45add largestContour command2020-01-13T14:14:20+01:00Ahmed Diabadd largestContour commandEvgeny KusmenkoAhmed DiabEvgeny Kusmenkohttps://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMAM2Cpp/-/issues/44add boundingRect command from OpenCV2020-01-13T14:13:59+01:00Ahmed Diabadd boundingRect 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