C++ main entry point: Difference between revisions
From Rsewiki
(Created page with "Back to Robobot B.") |
No edit summary |
||
Line 1: | Line 1: | ||
Back to [[Robobot B]]. | Back to [[Robobot B]]. | ||
Back to [[Robobot software description]] | |||
== Main == | |||
C++ starts executing a function called ''main(int argc, char ** argv)'' | |||
In Robobot, this is rather simple and the intention is explained here. | |||
The main.cpp file looks like this (slightly reduced): | |||
/* | |||
#*************************************************************************** | |||
#* Copyright (C) 2023 by DTU | |||
#* jcan@dtu.dk | |||
#* | |||
#* The MIT License (MIT) https://mit-license.org/ | |||
#***************************************************************************/ | |||
// System libraries | |||
#include <iostream> | |||
#include <stdio.h> | |||
#include <string.h> | |||
#include <string> | |||
// | |||
// include local files for data values and functions | |||
#include "uservice.h" | |||
#include "cmixer.h" | |||
#include "sgpiod.h" | |||
#include "bplan20.h" | |||
#include "bplan21.h" | |||
#include "bplan40.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 | |||
if (ini["plan20"]["run"] == "true") | |||
{ // example odometry drive using distance and turned angle | |||
'''plan20.run'''(); | |||
} | |||
mixer.setVelocity(0.0); | |||
mixer.setTurnrate(0.0); | |||
sleep(1); // to allow robot to stop while logging is running | |||
// turn off led 16 | |||
gpio.setPin(16, 0); | |||
} | |||
// close all logfiles | |||
service.terminate(); | |||
} |
Revision as of 08:14, 31 December 2023
Back to Robobot B. Back to Robobot software description
Main
C++ starts executing a function called main(int argc, char ** argv)
In Robobot, this is rather simple and the intention is explained here.
The main.cpp file looks like this (slightly reduced):
/* #*************************************************************************** #* Copyright (C) 2023 by DTU #* jcan@dtu.dk #* #* The MIT License (MIT) https://mit-license.org/ #***************************************************************************/ // System libraries #include <iostream> #include <stdio.h> #include <string.h> #include <string> // // include local files for data values and functions #include "uservice.h" #include "cmixer.h" #include "sgpiod.h" #include "bplan20.h" #include "bplan21.h" #include "bplan40.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 if (ini["plan20"]["run"] == "true") { // example odometry drive using distance and turned angle plan20.run(); } mixer.setVelocity(0.0); mixer.setTurnrate(0.0); sleep(1); // to allow robot to stop while logging is running // turn off led 16 gpio.setPin(16, 0); } // close all logfiles service.terminate(); }