Se il rover è fermo, senza avere ricevuto l'evento cmd(start) può partire ugualmente se davanti a lui è passato un ostacolo mobile.
bug rover mind
La causa è:
// mi è arrivato un evento dai sonar, cerco di capire cosa è stato rilevato, o reagisco di conseguenza
Plan aspettaEventi
println("in ascolto");
sense time(600000) robotLeave, robotDetected, cmd, ostacolo -> continue, continue, continue, continue;
printCurrentEvent;
//il rover è davanti al sonar a ed ho ricevuto il comando start
[!? davanti(sonara,rover)] onEvent cmd:cmd(start) -> forward rover -m comando:comando(start);
[!? davanti(sonara,rover)] println(davanti(sonara,rover));
//modifico la mia conoscenza interna sulla posizione del rover rispetto ai sonar
[!? davanti(sonara,rover)] onEvent robotLeave:robotLeave(sonara) -> removeRule davanti(sonara,rover)
else onEvent robotDetected:robotDetected(sonara,D) -> demo salvaDistanzaIniziale(D);
[!? value(distanzaIniziale,Di)] println(debug(value(distanzaIniziale, Di)));
onEvent ostacolo:ostacolo -> switchToPlan valutaOstacolo; // <- nope, causa il BUG
...
repeatPlan
Plan valutaOstacolo resumeLastPlan
delay time(2000);
sense time(500) ostacolo -> continue;
[!? tout(senseevent,QA)] forward rover -m comando:comando(start); <- nope nope nope BUG
[?? tout(senseevent,QA)] endPlan "";
onEvent ostacolo : ostacolo -> println("Ostacolo fisso");
onEvent ostacolo : ostacolo -> endQActor "Incontrato un ostacolo fisso" //In realt� nell'attuale implementazione di qactor non termina
Il rover appena viene attivato inizia a mandare eventi del tipo "ostacolo:ostacolo" se rileva qualcosa troppo vicino.
è sbagliato che la robot mind, se non è durante la traversata, alla percezione di obstacle valuti l'ostacolo e riparta
Se il rover è fermo, senza avere ricevuto l'evento cmd(start) può partire ugualmente se davanti a lui è passato un ostacolo mobile.
bug rover mind
La causa è:
Il rover appena viene attivato inizia a mandare eventi del tipo "ostacolo:ostacolo" se rileva qualcosa troppo vicino.
è sbagliato che la robot mind, se non è durante la traversata, alla percezione di obstacle valuti l'ostacolo e riparta