Skip to content
GitLab
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
  • Sign in
  • E EMADL2CPP
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
    • Locked Files
  • Issues 67
    • Issues 67
    • List
    • Boards
    • Service Desk
    • Milestones
    • Iterations
    • Requirements
  • Merge requests 1
    • Merge requests 1
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
    • Test Cases
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages and registries
    • Packages and registries
    • Container Registry
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Code review
    • Insights
    • Issue
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • monticore
  • EmbeddedMontiArcEmbeddedMontiArc
  • generators
  • EMADL2CPP
  • Issues
  • #19
Closed
Open
Issue created Feb 02, 2021 by Lukas Bram@lukas.bramDeveloper

Semantics Update probably broke something

Hi, we noticed that since the ExecutionSemantics update, the generator isn't able to compile the ema autopilot anymore. I tried to get a CI-Pipeline that reproduces the error, but the maven-streamtest plugin has some dependency-problems at the moment, so it doesn't work. So I can only give you the error and a few of the files. The error:

-- Generating done
CMake Generate step failed.  Build files cannot be regenerated correctly.
Scanning dependencies of target TestEmadlAutoPilotAdapter
[  9%] Building CXX object CMakeFiles/TestEmadlAutoPilotAdapter.dir/network.cpp.o
[ 18%] Building CXX object CMakeFiles/TestEmadlAutoPilotAdapter.dir/server_adapter.cpp.o
In file included from /home/lukas/workspace/EmbeddedMontiArc/vcg-tools/build_environment/ema/src/target/cpp/server_adapter.h:8,
                 from /home/lukas/workspace/EmbeddedMontiArc/vcg-tools/build_environment/ema/src/target/cpp/server_adapter.cpp:1:
/home/lukas/workspace/EmbeddedMontiArc/vcg-tools/build_environment/ema/src/target/cpp/./de_rwth_connectedcars_testAutoPilot.h: In member function ‘void de_rwth_connectedcars_testAutoPilot::execute()’:
/home/lukas/workspace/EmbeddedMontiArc/vcg-tools/build_environment/ema/src/target/cpp/./de_rwth_connectedcars_testAutoPilot.h:36:1: error: ‘mps’ was not declared in this scope
   36 | mps.currentVelKMH = true_velocity;
      | ^~~
/home/lukas/workspace/EmbeddedMontiArc/vcg-tools/build_environment/ema/src/target/cpp/./de_rwth_connectedcars_testAutoPilot.h:37:1: error: ‘path’ was not declared in this scope
   37 | path.current_pos = true_position;
      | ^~~~
/home/lukas/workspace/EmbeddedMontiArc/vcg-tools/build_environment/ema/src/target/cpp/./de_rwth_connectedcars_testAutoPilot.h:38:1: error: ‘steering’ was not declared in this scope; did you mean ‘set_steering’?
   38 | steering.currentAngle = true_compass;
      | ^~~~~~~~
      | set_steering
/home/lukas/workspace/EmbeddedMontiArc/vcg-tools/build_environment/ema/src/target/cpp/./de_rwth_connectedcars_testAutoPilot.h:40:1: error: ‘constr’ was not declared in this scope; did you mean ‘confstr’?
   40 | constr.maxAllVelocity = trajectory_x;
      | ^~~~~~
      | confstr
/home/lukas/workspace/EmbeddedMontiArc/vcg-tools/build_environment/ema/src/target/cpp/./de_rwth_connectedcars_testAutoPilot.h:44:1: error: ‘coef’ was not declared in this scope; did you mean ‘cosf’?
   44 | coef.execute();
      | ^~~~
      | cosf
/home/lukas/workspace/EmbeddedMontiArc/vcg-tools/build_environment/ema/src/target/cpp/./de_rwth_connectedcars_testAutoPilot.h:45:1: error: ‘pid’ was not declared in this scope
   45 | pid.kI = coef.kI;
      | ^~~
/home/lukas/workspace/EmbeddedMontiArc/vcg-tools/build_environment/ema/src/target/cpp/./de_rwth_connectedcars_testAutoPilot.h:49:1: error: ‘error’ was not declared in this scope; did you mean ‘perror’?
   49 | error.currentVel = mps.currentVelMPS;
      | ^~~~~
      | perror
/home/lukas/workspace/EmbeddedMontiArc/vcg-tools/build_environment/ema/src/target/cpp/./de_rwth_connectedcars_testAutoPilot.h:50:1: error: ‘velCalc’ was not declared in this scope
   50 | velCalc.currentVel = mps.currentVelMPS;
      | ^~~~~~~
/home/lukas/workspace/EmbeddedMontiArc/vcg-tools/build_environment/ema/src/target/cpp/./de_rwth_connectedcars_testAutoPilot.h:52:1: error: ‘driveProf’ was not declared in this scope
   52 | driveProf.maxAllVel = constr.maxVelocity;
      | ^~~~~~~~~
/home/lukas/workspace/EmbeddedMontiArc/vcg-tools/build_environment/ema/src/target/cpp/./de_rwth_connectedcars_testAutoPilot.h:82:1: error: ‘res2pedal’ was not declared in this scope
   82 | res2pedal.controlValue = pid.controlValue;
      | ^~~~~~~~~
make[2]: *** [CMakeFiles/TestEmadlAutoPilotAdapter.dir/build.make:95: CMakeFiles/TestEmadlAutoPilotAdapter.dir/server_adapter.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:99: CMakeFiles/TestEmadlAutoPilotAdapter.dir/all] Error 2
make: *** [Makefile:149: all] Error 2
[ERROR] During compilation, an error occured. See above for more details.

What I noticed so far is that the resulting cpp files are erronuous. The component coef for example, is not directly part of the root component TestAutopilot. Instead it is a subcomponent of the Velocity component, which is itself a subcomponent of the MovementController, which again is a subcompoment of TestAutopilot. So the correct way to reference it in the resulting de_rwth_connectedcars_testAutoPilot.h cpp file should be moveCont.vel.coef.execute(); but it instead was referenced like this coef.execute();.

And here the important files: de_rwth_connectedcars_testAutoPilot.h de_rwth_connectedcars_testAutoPilot_moveCon.hde_rwth_connectedcars_testAutoPilot_vel.hde_rwth_connectedcars_testAutoPilot_coef.hTestAutoPilot.emadlMovementController.emadlVelocity.emadlPIDcoef.emadl

Assignee
Assign to
Time tracking