package nl.ru.des;
-import java.io.File;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
+import java.io.PrintStream;
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;
import lejos.hardware.lcd.Font;
-import lejos.hardware.lcd.TextLCD;
+import lejos.hardware.lcd.LCDOutputStream;
import lejos.hardware.motor.EV3LargeRegulatedMotor;
import lejos.hardware.motor.EV3MediumRegulatedMotor;
import lejos.hardware.port.MotorPort;
@SuppressWarnings("resource")
public static void main(String[] args) {
EV3 brick = LocalEV3.get();
- TextLCD tlcd = brick.getTextLCD(Font.getSmallFont());
- LCDPrinter.startLCDPrinter(tlcd);
- System.setOut(LCDPrinter.getPrefixedPrintstream("out: ", tlcd));
- System.setErr(LCDPrinter.getPrefixedPrintstream("err: ", tlcd));
+ PrintStream lcd = new PrintStream(new LCDOutputStream(brick.getTextLCD(Font.getSmallFont())));
+ System.setOut(lcd);
+ System.setErr(lcd);
- LCDPrinter.print("Loading keylistener...");
+ System.out.println("Loading keylistener...");
brick.getKey("Escape").addKeyListener(new ButtonListener());
if(brick.getName().equalsIgnoreCase("Rover6") || brick.getName().equalsIgnoreCase("Rover8")){
- LCDPrinter.print("Starting as a slave...");
- LCDPrinter.print("My name is " + brick.getName());
- LCDPrinter.print("Loading touch sensors...");
+ System.out.println("Starting as a slave...");
+ System.out.println("My name is " + brick.getName());
+ System.out.println("Loading touch sensors...");
SampleProvider leftTouch = new EV3TouchSensor(brick.getPort("S1")).getTouchMode();
SampleProvider rightTouch = new EV3TouchSensor(brick.getPort("S2")).getTouchMode();
- LCDPrinter.print("Loading ultrasone sensor...");
+ System.out.println("Loading ultrasone sensor...");
SampleProvider frontUltra = new EV3UltrasonicSensor(brick.getPort("S3")).getDistanceMode();
- LCDPrinter.print("Loading color sensors...");
+ System.out.println("Loading color sensors...");
SampleProvider color = new EV3ColorSensor(brick.getPort("S4")).getColorIDMode();
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());
- LCDPrinter.print("Going to connect to: " + slave);
- LCDPrinter.print("Loading motors...");
+ System.out.println("Starting as as master...");
+ System.out.println("My name is " + brick.getName());
+ System.out.println("Going to connect to: " + slave);
+ System.out.println("Loading motors...");
RegulatedMotor rightMotor = new EV3LargeRegulatedMotor(MotorPort.A);
RegulatedMotor leftMotor = new EV3LargeRegulatedMotor(MotorPort.B);
RegulatedMotor measMotor = new EV3MediumRegulatedMotor(MotorPort.C);
measMotor.setSpeed(50);
rightMotor.setAcceleration(Constants.acceleration);
leftMotor.setAcceleration(Constants.acceleration);
- measMotor.setAcceleration(100);
+ measMotor.setAcceleration(50);
- LCDPrinter.print("Loading touch sensors...");
+ System.out.println("Loading touch sensors...");
SampleProvider leftLight = new NXTLightSensor(brick.getPort("S1")).getRedMode();
SampleProvider rightLight = new NXTLightSensor(brick.getPort("S2")).getRedMode();
- LCDPrinter.print("Loading ultrasone sensor...");
+ System.out.println("Loading ultrasone sensor...");
SampleProvider backUltra = new EV3UltrasonicSensor(brick.getPort("S3")).getDistanceMode();
- LCDPrinter.print("Loading gyro sensor...");
+ System.out.println("Loading gyro sensor...");
SensorCollector sc = new SensorCollector(backUltra, leftLight, rightLight, new EV3GyroSensor(brick.getPort("S4")));
BTController.startMaster(slave, sc);
- LCDPrinter.print("Finished loading");
+ System.out.println("Finished loading");
+ sc.calibrate();
LinkedList<Mission> missions = Missions.getMissions(sc, rightMotor, leftMotor, measMotor);
random = new Random();
+ System.out.println("Press any button to start");
+ Button.waitForAnyEvent();
for(Mission m : missions){
- LCDPrinter.print("Start " + m.name + " mission...");
+ System.out.println("Start " + m.name + " mission...");
arb = new Arbitrator(m.behaviours);
sc.reset();
arb.start();
- LCDPrinter.print(m.name + " finished!!1one!");
+ Sound.buzz();
+ System.out.println(m.name + " finished!!1one!");
}
-// Sound.playSample(new File("rick.wav"));
+ System.exit(0);
}
}
}
\ No newline at end of file