Everything coding related to the low-level-controller (Arduino).
This is the OG work of autonomousrobotshq. Accept no substitution.
This repo was scrobbled together fast and without much knowledge of good practice. We're all learning.
Whomever takes this over; you might want to convert this repo to PlatformIO since that will make your life a lot easier. You also might want to take up continuous integration tests. To confirm that nothing breaks along the way. PlatformIO provides that.
You can contact @s-t-a-n for some help with this. Alternatively you could have a look at krakakai/Spine, the totally overengineered successor of this library.
-
A Unix computer (you might get Windows to work, if you are crazy enough)
-
An Arduino (mega 2560 is recommended)
-
Install the packages from requirements.md.
-
Copy LLC1/launch.cpp.example to LLC1/launch.cpp.
-
Make sure that
BOARD_TAG
andBOARD_SUB
match your desired platform (preconfigured for Arduino Mega 2560) -
Run
make
in LLC1 folder to build. You likely see errors on your first compile. Don't worry, just make sure you have the right packages. -
Make sure that
MONITOR_PORT
matches in LLC1/Makefile. An easy way to do this is to enter the Arduino IDE and check the ports there. -
Run
make upload
in LLC1 folder to upload to Arduino. -
Run
make monitor
in LLC1 folder to monitor the serial port. There are nicer alternatives. For example: checkscreen
or use the Arduino IDE.
-
naming convention : https://guiquanz.gitbooks.io/google-cc-style-guide/content/ebook/Naming.html
-
general styleguide: https://google.github.io/styleguide/cppguide.html
-
follow existing naming convention when creating branches.
-
follow existing name/access/setting/etc styling.
-
libraries which are not important for including a header should not be included in the header but in the .cpp file.
-
every class that reads from an input should have an 'update' function in which data is polled/retreived. Getter functions only serve to access variables.
-
external libraries must be appended by their version number.
-
when using code from a remote source make sure to comply to their licensing (include license if necessary).
-
run 'clang-format -style=webkit -i [FILENAME]' before pushing.
-
don't push code that doesn't compile ('git stash' is for that).
-
commit messages should convey clearly what has changed and should contain relevant filenames.
Trespassers will be met with resistance.