ok danke schonmal,
da habe ich habe nochmal ne frage zu cmd:
void moveCommand(behaviour_command_t * cmd)
{
if(cmd->move_value > 0) // any move/rotate commands?
{
if(cmd->rotate)
rotate(cmd->speed_left, cmd->dir, cmd->move_value, false);
else if(cmd->move)
move(cmd->speed_left, cmd->dir, DIST_MM(cmd->move_value), false);
cmd->move_value = 0; // clear move value - the move commands are only
// given once and then runs in background.
}
else if(!(cmd->move || cmd->rotate)) // just move at speed?
{
changeDirection(cmd->dir);
moveAtSpeed(cmd->speed_left,cmd->speed_right);
}
else if(isMovementComplete()) // movement complete? --> clear flags!
{
cmd->rotate = false;
cmd->move = false;
}
}
also werden bei deisem Programmabschnitt die werte aus behaviour_command_t abgerufen?
Was genau passiert dann in diesem abschnitt?
am anfang verstehe ich es schonmal so, das wenn bei behaviour_command_t cruise an der letzten stelle IDLE steht ist move_value 0 und wenn da MOVE_FORWART steht ist move_value 1 oder?
aber was dann im genauen passiert versthe ich nicht so genau. Kannst du mir das noch so grob erklären?
Danke
Lesezeichen