EMAM2MQTT issueshttps://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/emam2mqtt/-/issues2019-09-28T11:12:25+02:00https://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/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/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/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/generators/emam2mqtt/-/issues/20Integration into EMAM2Middleware2019-08-25T20:47:10+02:00Alexander David HellwigIntegration into EMAM2MiddlewareIn EMAM2Middleware https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMAM2Middleware/tree/integrate-MQTT:
* [x] pom.xml
* [x] add the [dependency](https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMAM2M...In EMAM2Middleware https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMAM2Middleware/tree/integrate-MQTT:
* [x] pom.xml
* [x] add the [dependency](https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMAM2Middleware/blob/master/pom.xml#L103) of your mw generator
* [x] (increment [project version](https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMAM2Middleware/blob/master/pom.xml#L12))
* [x] New Class in de.monticore.lang.monticar.generator.middleware.impls
* [x] Wrapper for your generator
* [x] implements GeneratorImpl
* [x] similar to [RosCppGenImpl](https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMAM2Middleware/blob/master/src/main/java/de/monticore/lang/monticar/generator/middleware/impls/RosCppGenImpl.java)
* [x] Changes for [DistributedTargetGeneratorCli](https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMAM2Middleware/blob/master/src/main/java/de/monticore/lang/monticar/generator/middleware/cli/DistributedTargetGeneratorCli.java)
* [x] New Constant like [Line 47](https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMAM2Middleware/blob/master/src/main/java/de/monticore/lang/monticar/generator/middleware/cli/DistributedTargetGeneratorCli.java#L47)
* [x] also add to [getGeneratorNames()](https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMAM2Middleware/blob/master/src/main/java/de/monticore/lang/monticar/generator/middleware/cli/DistributedTargetGeneratorCli.java#L89)
* [x] add to [runGenerator](https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMAM2Middleware/blob/master/src/main/java/de/monticore/lang/monticar/generator/middleware/cli/DistributedTargetGeneratorCli.java#L164), ignoring TagSchema and TagHelper instructions for now
* [x] Add a new Test Class
* [x] Similar to [Ros2GenerationTest](https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMAM2Middleware/blob/master/src/test/java/de/monticore/lang/monticar/generator/middleware/Ros2GenerationTest.java#L17)
* [x] 1 or more TestCases
* [x] replace [resolveTags](https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMAM2Middleware/blob/master/src/test/java/de/monticore/lang/monticar/generator/middleware/Ros2GenerationTest.java#L28) with manual adding of your middleware Tags as in the previous Test cases
* [x] add the [CPP](https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMAM2Middleware/blob/master/src/test/java/de/monticore/lang/monticar/generator/middleware/Ros2GenerationTest.java#L32) and your middleware generator
* [x] compile the result using [gitlab-ci](https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMAM2Middleware/blob/master/.gitlab-ci.yml#L35) and your docker imageGeorg VinogradovJannis Joachim TölleMike GrüneGeorg Vinogradovhttps://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/emam2mqtt/-/issues/19Prepare Templates for Integration2019-08-25T17:33:55+02:00Alexander David HellwigPrepare Templates for Integration- CMake.ftl
- add the code generated by EMAM2CPP to the imported libraries(will replace the mock you used until now): https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMAM2RosCpp/blob/master/src/main/resources/de/mont...- CMake.ftl
- add the code generated by EMAM2CPP to the imported libraries(will replace the mock you used until now): https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMAM2RosCpp/blob/master/src/main/resources/de/monticore/lang/monticar/generator/roscpp/template/CMakeLists.ftl#L14
- add the IAdapter interface to the imported libraries: https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMAM2RosCpp/blob/master/src/main/resources/de/monticore/lang/monticar/generator/roscpp/template/CMakeLists.ftl#L15
- Adapter.h.ftl/Adapter.cpp.ftl
- import the code generated by EMAM2CPP: https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMAM2RosCpp/blob/master/src/main/resources/de/monticore/lang/monticar/generator/roscpp/template/Adapter.ftl#L8
- import the IAdapter interface to the imported libraries:https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMAM2RosCpp/blob/master/src/main/resources/de/monticore/lang/monticar/generator/roscpp/template/Adapter.ftl#L9
- implement the IAdapter interface: https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMAM2RosCpp/blob/master/src/main/resources/de/monticore/lang/monticar/generator/roscpp/template/Adapter.ftl#L15Georg VinogradovGeorg Vinogradovhttps://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/emam2mqtt/-/issues/18Add deploy job to gitlab-ci2019-07-28T15:26:31+02:00Alexander David HellwigAdd deploy job to gitlab-ci- Used to deploy the resulting jar to the se maven repository
- similar to [roscpp](https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMAM2RosCpp/blob/master/.gitlab-ci.yml#L5)
- remove maven goal sonar:sonar for now
- onl...- Used to deploy the resulting jar to the se maven repository
- similar to [roscpp](https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMAM2RosCpp/blob/master/.gitlab-ci.yml#L5)
- remove maven goal sonar:sonar for now
- only deploy on master branch!(use only,except)
- only deployed changes can be used in other Projects(except if both artifacts are build on the same machine)Jannis Joachim TölleJannis Joachim Töllehttps://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/emam2mqtt/-/issues/17Fix Subscribers/Publishers(MQTT)2019-07-28T14:47:00+02:00Alexander David HellwigFix Subscribers/Publishers(MQTT)- make sure that the value published to/(read from) your middleware is read from/(written to) the Port the MQTTConnectionSymbol is attached to
- Subscriber
- use variable port name instead of `mqttIn`(from [here](https://git.rwth-aac...- make sure that the value published to/(read from) your middleware is read from/(written to) the Port the MQTTConnectionSymbol is attached to
- Subscriber
- use variable port name instead of `mqttIn`(from [here](https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/emam2mqtt/blob/16-add-basic-adapter-generation/src/main/resources/de/monticore/lang/monticar/generator/mqtt/template/Callback.cpp.ftl#L30))
- it must be possible to write to more than one port, since a MQTTConnectionSymbol could be added to each incomming Port. You might need to create multiple instances of Callback or multiple Callback classes.
- Publisher
- use variable port name instead of `mqttOut`(from [here](https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/emam2mqtt/blob/16-add-basic-adapter-generation/src/main/resources/de/monticore/lang/monticar/generator/mqtt/template/Adapter.cpp.ftl#L50))https://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/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/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 Vinogradovhttps://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/emam2mqtt/-/issues/9Add Env variable to specify where mqtt is installed2019-06-14T12:30:29+02:00Alexander David HellwigAdd Env variable to specify where mqtt is installedGeorg VinogradovGeorg Vinogradovhttps://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/emam2mqtt/-/issues/8Handwrite a MQTT-Adapter2019-06-05T17:31:43+02:00Alexander David HellwigHandwrite a MQTT-AdapterCompare to https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMAM2RosCpp/tree/master/src/test/resources/results/echoCMake You can mock tests_a_compA and remove/ignore IAdapter_tests_a_compA.h. Keep the signature of the ini...Compare to https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMAM2RosCpp/tree/master/src/test/resources/results/echoCMake You can mock tests_a_compA and remove/ignore IAdapter_tests_a_compA.h. Keep the signature of the init as well as tick methods.Georg VinogradovJannis Joachim TölleMike GrüneGeorg Vinogradovhttps://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/emam2mqtt/-/issues/7Compile the example with CMake2019-06-03T15:35:21+02:00Alexander David HellwigCompile the example with CMakeReference https://cliutils.gitlab.io/modern-cmake/ Compare to https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMAM2RosCpp/blob/master/src/test/resources/results/echoCMake/CMakeLists.txt You will need to replace/delete th...Reference https://cliutils.gitlab.io/modern-cmake/ Compare to https://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/EMAM2RosCpp/blob/master/src/test/resources/results/echoCMake/CMakeLists.txt You will need to replace/delete the find_package and list instructions as well as the (file)names. You might need to write/search a FindMQTT.cmakeGeorg VinogradovGeorg Vinogradovhttps://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/emam2mqtt/-/issues/6Create a simple example2019-06-03T15:21:54+02:00Alexander David HellwigCreate a simple exampleCreate a example where a Subscriber sends a double to a Publisher which prints it to stdout. Compile and run it.You dont need to use EmbeddeMontiArcMath for this.Create a example where a Subscriber sends a double to a Publisher which prints it to stdout. Compile and run it.You dont need to use EmbeddeMontiArcMath for this.Georg VinogradovGeorg Vinogradovhttps://git.rwth-aachen.de/monticore/EmbeddedMontiArc/generators/emam2mqtt/-/issues/5[Optional]Install MQTT(Windows)2019-05-24T13:42:44+02:00Alexander David Hellwig[Optional]Install MQTT(Windows)Install MQTT on a Windows 10 x64 System and add documentation to README.md(or link to existing)Install MQTT on a Windows 10 x64 System and add documentation to README.md(or link to existing)Georg VinogradovGeorg Vinogradov