Robobot new behaviour plan: Difference between revisions
From Rsewiki
Line 53: | Line 53: | ||
ini["plan20"]["log"] = "true"; | ini["plan20"]["log"] = "true"; | ||
ini["plan20"]["run"] = "false"; | ini["plan20"]["run"] = "false"; | ||
==== Include the new plan in the main.cpp function | |||
The main.cpp gives the execution order, so include the definition and add this new plan to the right place, like: | |||
$ cd ~/svn/robobot/raubase/src | |||
$ nano main.cpp | |||
... | |||
#include "bplan21.h" | |||
#include "bplan40.h" | |||
'''#include "bplan100.h"''' | |||
int main (int argc, char **argv) | |||
{ // prepare all modules and start data flow | |||
bool setupOK = service.setup(argc, argv); | |||
if (setupOK) | |||
{ // turn on LED on port 16 | |||
gpio.setPin(16, 1); | |||
// run the planned missions | |||
'''plan100.run();''' | |||
plan20.run(); | |||
plan21.run(); | |||
plan40.run(); | |||
// | |||
mixer.setVelocity(0.0); | |||
... | |||
==== Add to CMakeLists.txt ==== | ==== Add to CMakeLists.txt ==== | ||
Line 58: | Line 84: | ||
Add the new cpp file to the CMakeLists.txt to the list of files, like | Add the new cpp file to the CMakeLists.txt to the list of files, like | ||
$ nano | $ cd ~/svn/robobot/raubase | ||
$ nano CMakeLists.txt | |||
... | ... | ||
add_executable(raubase | add_executable(raubase |
Revision as of 14:34, 1 January 2024
Back to Robobot
Back to Robobot software description
Create a new behaviour plan
Copy from existing plan
The easy way is to copy an existing plan, e.g.:
$ cd ~/svn/robobot/raubase/src $ cp bplan20.cpp bplan100.cpp $ cp bplan20.h bplan100.h
Then add the new plan to the repository (if a repository is used)
Rename class name
A number of variables and types need to be renamed.
Header file
- Search and replace 'BPlan20' to 'BPlan100' (three places)
- rename 'plan20' (last line) to 'plan100'
The bplan100.h should be changes to look like:
class BPlan100 { public: ~BPlan100(); void setup(); void run(); ... }; extern BPlan100 plan100;
Cpp file
- Change the includefile "bplan20.h" to "bplan100.h"
- Rename 'BPlan20' to 'BPlan100'
- Change all "plan20" to "plan100" to name the new class, make a new section in the configuration file, and change the name of the logfile.
- Change all "Plan20" to "Plan100" - used in comments and debug print.
Parts of the old file looks like:
#include "bplan20.h" BPlan20 plan20; void BPlan20::setup() { // ensure there is default values in ini-file if (not ini["plan20"].has("log")) { // no data yet, so generate some default values ini["plan20"]["log"] = "true"; ini["plan20"]["run"] = "false";
==== Include the new plan in the main.cpp function
The main.cpp gives the execution order, so include the definition and add this new plan to the right place, like:
$ cd ~/svn/robobot/raubase/src $ nano main.cpp ... #include "bplan21.h" #include "bplan40.h" #include "bplan100.h" int main (int argc, char **argv) { // prepare all modules and start data flow bool setupOK = service.setup(argc, argv); if (setupOK) { // turn on LED on port 16 gpio.setPin(16, 1); // run the planned missions plan100.run(); plan20.run(); plan21.run(); plan40.run(); // mixer.setVelocity(0.0); ...
Add to CMakeLists.txt
Add the new cpp file to the CMakeLists.txt to the list of files, like
$ cd ~/svn/robobot/raubase $ nano CMakeLists.txt ... add_executable(raubase src/bplan20.cpp src/bplan21.cpp src/bplan40.cpp src/bplan100.cpp src/cedge.cpp src/cheading.cpp ...
(hertil)