added gracefull shutdown
[des2015.git] / dsl / runtime / src / nl / ru / des / Marster.java
index 83bc184..3684c0a 100644 (file)
@@ -1,12 +1,9 @@
 package nl.ru.des;
 
-import java.io.File;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
 import java.util.LinkedList;
 import java.util.Random;
 
+import lejos.hardware.Button;
 import lejos.hardware.Sound;
 import lejos.hardware.ev3.EV3;
 import lejos.hardware.ev3.LocalEV3;
@@ -56,20 +53,12 @@ public class Marster {
                        RemoteSensors rs = new RemoteSensors(leftTouch, rightTouch, frontUltra, color);
                        
                        BTController.startSlave();
-                       rs.start(BTController.buf);
+                       try {
+                               rs.start(BTController.buf);
+                       } catch (Exception e){
+                               System.exit(0);
+                       }
                } else {
-//                     try {
-//                             InputStream inp = Marster.class.getResourceAsStream("nl/ru/des/sound/rick.wav");
-//                             FileOutputStream out = new FileOutputStream("rick.wav");
-//                             byte buffer[] = new byte[2048];
-//                             while(inp.read(buffer)>0){
-//                                     out.write(buffer);
-//                             }
-//                             inp.close();
-//                             out.close();
-//                     } catch (IOException e) {
-//                             e.printStackTrace();
-//                     }
                        String slave = brick.getName().equalsIgnoreCase("Rover5") ? "Rover6" : "Rover8";
                        LCDPrinter.print("Starting as as master...");
                        LCDPrinter.print("My name is " + brick.getName());
@@ -97,16 +86,20 @@ public class Marster {
 
                        BTController.startMaster(slave, sc);
                        LCDPrinter.print("Finished loading");
+                       sc.calibrate();
                        LinkedList<Mission> missions = Missions.getMissions(sc, rightMotor, leftMotor, measMotor);
                        random = new Random();
+                       LCDPrinter.print("Press any button to start");
+                       Button.waitForAnyEvent();
                        for(Mission m : missions){
                                LCDPrinter.print("Start " + m.name + " mission...");
                                arb = new Arbitrator(m.behaviours);
                                sc.reset();
+                               Sound.buzz();
                                arb.start();
                                LCDPrinter.print(m.name + " finished!!1one!");
                        }
-//                     Sound.playSample(new File("rick.wav"));
+                       System.exit(0);
                }
        }
 }
\ No newline at end of file