Zu 1:
Die #define Direktive ist im Prinzip nur eine Textersatz-Funktion.
Bei #define IDLE 0 wird also überall im Programm, wo IDLE vorkommt, eine 0 eingesetzt.
Das Ganze hilft dabei, das Programm verständlicher zu machen.
Zu 2:
behaviour_command_t ist ein "höherer Datentyp", der im Programm mit typedef struct definiert wurde. Durch solch einen Datentyp werden einzelne Daten zusammengefaßt, um sie gemeinsam als quasi EINE Variable nutzen zu können.
"behaviour_command_t" ist damit der NAME dieses neuen Datentyps. Er erfüllt denau dieselbe Funktion wie uint8_t oder double.
Damit ist noch keine Variable eingerichtet: Das wird mit "behaviour_command_t cruise" gemacht. Danach gibt es die "höhere Variable" cruise. Sie besteht aus uint8_t speed_left, uint8_t speed_right, usw.
Zu 3:
Hier wird die Funktion moveCommand mit dem Parameter cmd aufgerufen, wobei cmd vom Typ behaviour_command_t ist.
Lesezeichen