space-concordia-robotics / robotics-prototype

Teleoperated Mars rover with autonomous capabilities intended for robotics competitions.
https://spaceconcordia.github.io/robotics.html
25 stars 18 forks source link

Modularize mobile platform 451 #472

Closed steamypotato closed 3 years ago

steamypotato commented 4 years ago

Assignee Section

Description

Refactors the mobile platform project in such a way that the includes are no longer in the middle of the .ino file, which also allows the header files to be separated in their respective .h and .cpp files. Also, it removes the TinyGPS library from the project and just installs it like the other libraries.

Two of the main ideas in the refactoring were to turn the helper class into a static singleton and solve the dependency issue by passing object references into the Commands class.

Steps for Testing

Use cmake to build the project https://github.com/space-concordia-robotics/robotics-prototype/wiki/Building-the-C---code

closes #451

Reviewer Section

Aside from local testing and the General Integration Test it is implied that static analysis should be included in the verification process.

For Pull Requests that do not include code changes, it is not required to perform the tests above.

MartensCedric commented 3 years ago

Note : If you build with the Arduino IDE, the code does not build correctly anymore. Works just fine with the cmake tho. The reason why is that it can't find Navigation.h

VimFreeman commented 3 years ago

We will approve this PR and deal with the potential consequences later