EmbeddedMontiArc issueshttps://git.rwth-aachen.de/groups/monticore/EmbeddedMontiArc/-/issues2019-07-12T11:57:14+02:00https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/emam2mqtt/-/issues/16Add basic Adapter generation2019-07-12T11:57:14+02:00Alexander David HellwigAdd basic Adapter generationAdd basic generation of a Adapter .cpp and .h files
Deliverables:
- new Template Adapter.cpp.ftl and/or Adapter.h.ftl
- Can be based on Adapter.ftl template in [EMAM2Roscpp](https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/gener...Add basic generation of a Adapter .cpp and .h files
Deliverables:
- new Template Adapter.cpp.ftl and/or Adapter.h.ftl
- Can be based on Adapter.ftl template in [EMAM2Roscpp](https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMAM2RosCpp/blob/master/src/main/resources/de/monticore/lang/monticar/generator/roscpp/template/Adapter.ftl). Possible easiest if you implement your own MQTTMacro.ftl(reference: [RosMacros.ftl](https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMAM2RosCpp/blob/master/src/main/resources/de/monticore/lang/monticar/generator/roscpp/template/RosMacros.ftl)) and use the original `Adapter.ftl`.
- Result should look or work similar to your example adapter .cpp and .h
- Assume all values are written/read as doubles for now(e.g. ignore all Matrix/Vector types, Struct Types)
- You can ignore all generics, for now
- The resulting class should should be named `MQTTAdapter_${escapedCompName}`, where `${escapedCompName}` is `componentInstance.getFullName()` with all `.`, `[`,`]` replaced by `_`
- In MQTTTemplates:
- A new constant + fill method pair for the new template(s)
- A new Class MQTTAdapterModel:
- can be based on the [RosAdapterModel](https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMAM2RosCpp/blob/master/src/main/java/de/monticore/lang/monticar/generator/roscpp/template/RosAdapterModel.java) in RosCpp
- should contain all information needed to generate the Adapter
- (escaped) name of the component instance
- MQTTPorts of the component
- Possibly grouped by incomming/outgoing(for subscribers/publishers respectivly)
- In MQTTGenerator:
- a method `+ List<File> generateAdapter(EMAComponentInstanceSymbol)` that generates the CMake file using the MQTTTemplate Class and the template Adapter.cpp.ftl and/or Adapter.h.ftl.
- Add a test case:
- as previously(Issue #13):
- parse a simple componentInstance
- manually add MQTTConnectionSymbols with `EMAPortInstanceSymbol::setMiddlewareSymbol`
- call `generateCMake` on the componentInstance
- compare the resulting File(s) with an expected result(AbstractSymtabTest::testFilesAreEqual)https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/emam2someip/-/issues/16Add basic Adapter Generation2019-07-14T17:30:39+02:00Alexander David HellwigAdd basic Adapter GenerationAdd basic generation of a Adapter .cpp and .h files
Deliverables:
- new Template Adapter.cpp.ftl and/or Adapter.h.ftl
- Can be based on Adapter.ftl template in [EMAM2Roscpp](https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/gener...Add basic generation of a Adapter .cpp and .h files
Deliverables:
- new Template Adapter.cpp.ftl and/or Adapter.h.ftl
- Can be based on Adapter.ftl template in [EMAM2Roscpp](https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMAM2RosCpp/blob/master/src/main/resources/de/monticore/lang/monticar/generator/roscpp/template/Adapter.ftl). Possible easiest if you implement your own SomeIPMacro.ftl(reference: [RosMacros.ftl](https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMAM2RosCpp/blob/master/src/main/resources/de/monticore/lang/monticar/generator/roscpp/template/RosMacros.ftl)) and use the original `Adapter.ftl`.
- Result should look or work similar to your example adapter .cpp and .h
- Assume all values are written/read as doubles for now(e.g. ignore all Matrix/Vector types, Struct Types)
- You can ignore all generics, for now
- The resulting class should should be named `SomeIPAdapter_${escapedCompName}`, where `${escapedCompName}` is `componentInstance.getFullName()` with all `.`, `[`,`]` replaced by `_`
- In SomeIPTemplates:
- A new constant + fill method pair for the new template(s)
- A new Class SomeIPAdapterModel:
- can be based on the [RosAdapterModel](https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMAM2RosCpp/blob/master/src/main/java/de/monticore/lang/monticar/generator/roscpp/template/RosAdapterModel.java) in RosCpp
- should contain all information needed to generate the Adapter
- (escaped) name of the component instance
- SomeIPPorts of the component
- Possibly grouped by incomming/outgoing(for subscribers/publishers respectivly)
- In SomeIPGenerator:
- a method `+ List<File> generateAdapter(EMAComponentInstanceSymbol)` that generates the CMake file using the SomeIPTemplate Class and the template Adapter.cpp.ftl and/or Adapter.h.ftl.
- Add a test case:
- as previously(Issue #13):
- parse a simple componentInstance
- manually add SomeIPConnectionSymbols with `EMAPortInstanceSymbol::setMiddlewareSymbol`
- call `generateCMake` on the componentInstance
- compare the resulting File(s) with an expected result(AbstractSymtabTest::testFilesAreEqual)https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/emam2someip/-/issues/15Add basic CMake generation2019-07-10T12:55:39+02:00Alexander David HellwigAdd basic CMake generationAdd basic generation of a CMake File to compile an SomeIPAdapter(e.g. your example Adapter)
Deliverables:
- new Template CMakeLists.ftl
- Can be based on CMake template in [EMAM2Roscpp](https://git.rwth-aachen.de/monticore/EmbeddedMo...Add basic generation of a CMake File to compile an SomeIPAdapter(e.g. your example Adapter)
Deliverables:
- new Template CMakeLists.ftl
- Can be based on CMake template in [EMAM2Roscpp](https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMAM2RosCpp/blob/master/src/main/resources/de/monticore/lang/monticar/generator/roscpp/template/CMakeLists.ftl)
- Result should look similar to your example adapter's CMakeLists.txt
- The resulting compiled library should be named `SomeIPAdapter_${escapedCompName}`, where `${escapedCompName}` is `componentInstance.getFullName()` with all `.`, `[`,`]` replaced by `_`
- In SomeIPTemplates:
- A new constant + fill method pair for the template CMakeLists.ftl
- In SomeIPGenerator:
- a method `+ File generateCMake(EMAComponentInstanceSymbol)` that generates the CMake file using the SomeIPTemplate Class and the template CMakeLists.ftl.
- Add a test case:
- as previously(Issue #13):
- parse a simple componentInstance
- manually add SomeIPConnectionSymbols with `EMAPortInstanceSymbol::setMiddlewareSymbol`
- call `generateCMake` on the componentInstance
- compare the resulting File with an expected result(AbstractSymtabTest::testFilesAreEqual)https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/emam2mqtt/-/issues/15Add CMake Generation2019-07-08T12:00:32+02:00Alexander David HellwigAdd CMake GenerationAdd basic generation of a CMake File to compile an MQTTAdapter(e.g. your example Adapter)
Deliverables:
- new Template CMakeLists.ftl
- Can be based on CMake template in [EMAM2Roscpp](https://git.rwth-aachen.de/monticore/EmbeddedMont...Add basic generation of a CMake File to compile an MQTTAdapter(e.g. your example Adapter)
Deliverables:
- new Template CMakeLists.ftl
- Can be based on CMake template in [EMAM2Roscpp](https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMAM2RosCpp/blob/master/src/main/resources/de/monticore/lang/monticar/generator/roscpp/template/CMakeLists.ftl)
- Result should look similar to your example adapter's CMakeLists.txt
- The resulting compiled library should be named `MQTTAdapter_${escapedCompName}`, where `${escapedCompName}` is `componentInstance.getFullName()` with all `.`, `[`,`]` replaced by `_`
- In MQTTTemplates:
- A new constant + fill method pair for the template CMakeLists.ftl
- In MQTTGenerator:
- a method `+ File generateCMake(EMAComponentInstanceSymbol)` that generates the CMake file using the MQTTTemplate Class and the template CMakeLists.ftl.
- Add a test case:
- as previously(Issue #13):
- parse a simple componentInstance
- manually add SomeIPConnectionSymbols with `EMAPortInstanceSymbol::setMiddlewareSymbol`
- call `generateCMake` on the componentInstance
- compare the resulting File with an expected result(AbstractSymtabTest::testFilesAreEqual)Mike GrüneMike Grünehttps://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMADL2CPP/-/issues/12Checksum calculation for larger files fails2020-10-29T16:21:26+01:00Ghost UserChecksum calculation for larger files failsThe method `getChecksumForFile(...)` in file EMADLGenerator.java fails for larger files. It was executed on our training set (~2.0 GB) and failed.The method `getChecksumForFile(...)` in file EMADLGenerator.java fails for larger files. It was executed on our training set (~2.0 GB) and failed.https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/simulators/server/-/issues/29New Code2019-10-09T10:50:29+02:00Sabrina WolffNew CodeScreenshots for presentationScreenshots for presentationSecond SprintSabrina WolffMarkus HorlemannUta SkorzinskiSabrina Wolffhttps://git.rwth-aachen.de/monticore/EmbeddedMontiArc/applications/carlacomponents/-/issues/13Create concept to use ros messages with array field without handwritten wrapper2019-08-30T11:44:18+02:00Alexander David HellwigCreate concept to use ros messages with array field without handwritten wrapperCreate one or more concepts to add extra info to RosConnection tags that allows us to directly use array fields in emam.
Ideas: Cut or Pad to the disired lenght, pair of ports(one with lenght one with data), only allow with embeddedmonti...Create one or more concepts to add extra info to RosConnection tags that allows us to directly use array fields in emam.
Ideas: Cut or Pad to the disired lenght, pair of ports(one with lenght one with data), only allow with embeddedmontiarcdynamics: https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/languages/EmbeddedMontiArcDynamics
You DONT need to implement these yethttps://git.rwth-aachen.de/monticore/EmbeddedMontiArc/applications/carlacomponents/-/issues/12Create a wrapper emam component to reuse the autopilot component2019-09-25T15:44:15+02:00Alexander David HellwigCreate a wrapper emam component to reuse the autopilot componentThe model can be found here: https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/utilities/EMAStudioBuilder/tree/master/EmbeddedMontiArcStudio/model/autopilot/de/rwth/armin/modeling/autopilot you can copy it into your project.
Main Com...The model can be found here: https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/utilities/EMAStudioBuilder/tree/master/EmbeddedMontiArcStudio/model/autopilot/de/rwth/armin/modeling/autopilot you can copy it into your project.
Main Component: Autopilot.emam
First impression:
velocity: estimate from 2 or more datapoints of /carla/<ROLE NAME>/odometry OR use /carla/objects OR find other topic containing the velocity
x,y, compas: /carla/<ROLE NAME>/odometry
currentEngine,currentStearing,currentBrakes:?, possibly calculate/hard set in the wrapper/heurisic
trajectory_lenght,trajectory_x,trajectory_y: Use carla_waypoint_publisher: https://github.com/carla-simulator/ros-bridge/blob/master/carla_waypoint_publisher/README.md
You will need to writte a small python or c++ ros program that converts the nav_msgs.Path Message to the required format and outputs it on 3 new topicsHelge Simon HartlebHelge Simon Hartlebhttps://git.rwth-aachen.de/monticore/EmbeddedMontiArc/applications/carlacomponents/-/issues/11Check if Collision Data is available in ROS Bridge2019-08-12T17:07:27+02:00Alexander David HellwigCheck if Collision Data is available in ROS BridgeSuggestions:
Add print to https://github.com/carla-simulator/ros-bridge/blob/29003493c569e271801e48214863e3da054eec7d/carla_ros_bridge/src/carla_ros_bridge/collision_sensor.py#L43Suggestions:
Add print to https://github.com/carla-simulator/ros-bridge/blob/29003493c569e271801e48214863e3da054eec7d/carla_ros_bridge/src/carla_ros_bridge/collision_sensor.py#L43Sven0171Philipp HeliosHelge Simon HartlebSven0171https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/emam2someip/-/issues/14Add to CI: Compile Adapter example2019-07-09T18:49:07+02:00Alexander David HellwigAdd to CI: Compile Adapter exampleCompile the example adapter with docker and add it to the CICompile the example adapter with docker and add it to the CIMarkus Georg BendelMarkus Georg Bendelhttps://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/emam2someip/-/issues/13Add basic generator structure to project2019-07-09T18:48:52+02:00Alexander David HellwigAdd basic generator structure to projectReference: https://freemarker.apache.org/docs/index.html
See:
https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMAM2RosCpp/blob/master/src/main/java/de/monticore/lang/monticar/generator/roscpp/GeneratorRosCpp.java#L69
ht...Reference: https://freemarker.apache.org/docs/index.html
See:
https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMAM2RosCpp/blob/master/src/main/java/de/monticore/lang/monticar/generator/roscpp/GeneratorRosCpp.java#L69
https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMAM2RosCpp/blob/master/src/main/java/de/monticore/lang/monticar/generator/roscpp/template/RosCppTemplates.java
https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMAM2RosCpp/tree/master/src/main/resources/de/monticore/lang/monticar/generator/roscpp/templateMarkus Georg BendelMarkus Georg Bendelhttps://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/emam2someip/-/issues/12Add MiddlewareSymbol to EmbeddedMontiArc2019-07-09T11:57:59+02:00Alexander David HellwigAdd MiddlewareSymbol to EmbeddedMontiArcDirectory: https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/languages/EmbeddedMontiArc/tree/master/src/main/java/de/monticore/lang/embeddedmontiarc/tagging/middleware
It should contain all information you need to generate a publishe...Directory: https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/languages/EmbeddedMontiArc/tree/master/src/main/java/de/monticore/lang/embeddedmontiarc/tagging/middleware
It should contain all information you need to generate a publisher/subscriber that connects a topic/service to a port.
It should be similar RosConnectionSymbol(e.g. extends MiddlewareSymbol)
Also adapt EMAPortSymbol and EMAPortInstanceSymbol(see isRosPort)
Remember to create a merge request and assigne it to meMarkus Georg BendelMarkus Georg Bendelhttps://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/emam2someip/-/issues/11Enable multiple callbacks in one adapter2019-07-12T11:48:55+02:00Alexander David HellwigEnable multiple callbacks in one adapterIdea: Encapsulate callback in Class:
Create Class with callback and add pointer to component in constructor. Create an object of this class in the init method of the adapter and register with middleware
If you can think of other alternat...Idea: Encapsulate callback in Class:
Create Class with callback and add pointer to component in constructor. Create an object of this class in the init method of the adapter and register with middleware
If you can think of other alternatives, feel free to implement them insteadMarkus Georg BendelMarkus Georg Bendelhttps://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/emam2someip/-/issues/10Change adapter example to set values of component on callback2019-06-13T17:47:50+02:00Alexander David HellwigChange adapter example to set values of component on callbackE.g. someware in SomeipAdapter_tests_a_compA::on_message:
`component->rosIn = dataFromMessage;`E.g. someware in SomeipAdapter_tests_a_compA::on_message:
`component->rosIn = dataFromMessage;`Markus Georg BendelMarkus Georg Bendelhttps://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/emam2someip/-/issues/9Change adapter example to publish values from the component2019-06-13T17:32:07+02:00Alexander David HellwigChange adapter example to publish values from the componentE.g. in https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/emam2someip/blob/8-handwrite-a-some-ip-adapter/someip_adapter/SomeipAdapter_tests_a_compA.cpp#L61 :
`double d = component->rosOut`;E.g. in https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/emam2someip/blob/8-handwrite-a-some-ip-adapter/someip_adapter/SomeipAdapter_tests_a_compA.cpp#L61 :
`double d = component->rosOut`;Markus Georg BendelMarkus Georg Bendelhttps://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/emam2mqtt/-/issues/14Add to CI: Compile Adapter example2019-07-01T21:38:02+02:00Alexander David HellwigAdd to CI: Compile Adapter exampleCompile the example adapter with docker and add it to the CICompile the example adapter with docker and add it to the CIGeorg VinogradovGeorg Vinogradovhttps://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/emam2mqtt/-/issues/13Add basic generator structure to project2019-07-01T13:18:20+02:00Alexander David HellwigAdd basic generator structure to projectReference: https://freemarker.apache.org/docs/index.html
See:
https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMAM2RosCpp/blob/master/src/main/java/de/monticore/lang/monticar/generator/roscpp/GeneratorRosCpp.java#L69
ht...Reference: https://freemarker.apache.org/docs/index.html
See:
https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMAM2RosCpp/blob/master/src/main/java/de/monticore/lang/monticar/generator/roscpp/GeneratorRosCpp.java#L69
https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMAM2RosCpp/blob/master/src/main/java/de/monticore/lang/monticar/generator/roscpp/template/RosCppTemplates.java
https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMAM2RosCpp/tree/master/src/main/resources/de/monticore/lang/monticar/generator/roscpp/templateGeorg VinogradovGeorg Vinogradovhttps://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/emam2mqtt/-/issues/12Add MiddlewareSymbol to EmbeddedMontiArc2019-06-26T14:01:33+02:00Alexander David HellwigAdd MiddlewareSymbol to EmbeddedMontiArcDirectory: https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/languages/EmbeddedMontiArc/tree/master/src/main/java/de/monticore/lang/embeddedmontiarc/tagging/middleware
It should contain all information you need to generate a publishe...Directory: https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/languages/EmbeddedMontiArc/tree/master/src/main/java/de/monticore/lang/embeddedmontiarc/tagging/middleware
It should contain all information you need to generate a publisher/subscriber that connects a topic/service to a port.
It should be similar RosConnectionSymbol(e.g. extends MiddlewareSymbol)
Also adapt EMAPortSymbol and EMAPortInstanceSymbol(see isRosPort)
Remember to create a merge request and assigne it to meGeorg VinogradovGeorg Vinogradovhttps://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/emam2mqtt/-/issues/11Enable multiple callbacks in one adapter2019-06-17T19:14:03+02:00Alexander David HellwigEnable multiple callbacks in one adapterIdea: Encapsulate callback in Class:
Create Class with callback and add pointer to component in constructor. Create an object of this class in the init method of the adapter and register with middleware
If you can think of other alternat...Idea: Encapsulate callback in Class:
Create Class with callback and add pointer to component in constructor. Create an object of this class in the init method of the adapter and register with middleware
If you can think of other alternatives, feel free to implement them insteadGeorg VinogradovGeorg Vinogradovhttps://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/emam2mqtt/-/issues/10Change adapter example to set values of component on callback2019-06-17T19:08:57+02:00Alexander David HellwigChange adapter example to set values of component on callbackE.g. someware in message_arrived:
`component->rosIn = dataFromMessage;`E.g. someware in message_arrived:
`component->rosIn = dataFromMessage;`Georg VinogradovGeorg Vinogradov