X-Git-Url: https://git.martlubbers.net/?a=blobdiff_plain;f=dsl%2Fruntime%2Fsrc%2Fnl%2Fru%2Fdes%2FMarster.java;h=7074f5958e254cbdc56966c5f2c8add728d91c9b;hb=3e5a839d3f540c49d5b903bfebdd8913e7deef9a;hp=83bc18405152781832cb79b0eac6d4c8ea25bfcd;hpb=49495a0fe049791c0f45de4ac2177d45ca373265;p=des2015.git diff --git a/dsl/runtime/src/nl/ru/des/Marster.java b/dsl/runtime/src/nl/ru/des/Marster.java index 83bc184..7074f59 100644 --- a/dsl/runtime/src/nl/ru/des/Marster.java +++ b/dsl/runtime/src/nl/ru/des/Marster.java @@ -1,9 +1,7 @@ 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; @@ -11,7 +9,7 @@ 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; @@ -22,6 +20,7 @@ import lejos.hardware.sensor.EV3UltrasonicSensor; import lejos.hardware.sensor.NXTLightSensor; import lejos.robotics.RegulatedMotor; import lejos.robotics.SampleProvider; +import lejos.utility.Delay; import nl.ru.des.sensors.BTController; import nl.ru.des.sensors.RemoteSensors; import nl.ru.des.sensors.SensorCollector; @@ -30,51 +29,79 @@ public class Marster { public static Arbitrator arb; public static Random random; + public static void playPacman(){ + int whole = 2000; + Sound.playNote(Sound.PIANO, 494, whole/16);// b4 + Sound.playNote(Sound.PIANO, 988, whole/16);// b5 + Sound.playNote(Sound.PIANO, 740, whole/16);// f#5 + Sound.playNote(Sound.PIANO, 622, whole/16);// eb5 + Sound.playNote(Sound.PIANO, 988, whole/32);// b5 + Sound.playNote(Sound.PIANO, 740, whole/16+whole/32);// f#5 + Sound.playNote(Sound.PIANO, 622, whole/8);// eb5 + + Sound.playNote(Sound.PIANO, 523, whole/16);// c5 + Sound.playNote(Sound.PIANO, 1047, whole/16);// c6 + Sound.playNote(Sound.PIANO, 784, whole/16);// g5 + Sound.playNote(Sound.PIANO, 659, whole/16);// e5 + Sound.playNote(Sound.PIANO, 1047, whole/32);// c6 + Sound.playNote(Sound.PIANO, 784, whole/16+whole/32);// g5 + Sound.playNote(Sound.PIANO, 659, whole/8);// e5 + + Sound.playNote(Sound.PIANO, 494, whole/16);// b4 + Sound.playNote(Sound.PIANO, 988, whole/16);// b5 + Sound.playNote(Sound.PIANO, 740, whole/16);// f#5 + Sound.playNote(Sound.PIANO, 622, whole/16);// eb5 + Sound.playNote(Sound.PIANO, 988, whole/32);// b5 + Sound.playNote(Sound.PIANO, 740, whole/16+whole/32);// f#5 + Sound.playNote(Sound.PIANO, 622, whole/8);// eb5 + + Sound.playNote(Sound.PIANO, 622, whole/32);// eb5 + Sound.playNote(Sound.PIANO, 659, whole/32);// e5 + Sound.playNote(Sound.PIANO, 698, whole/16);// f5 + Sound.playNote(Sound.PIANO, 698, whole/32);// f5 + Sound.playNote(Sound.PIANO, 740, whole/32);// f#5 + Sound.playNote(Sound.PIANO, 784, whole/16);// g5 + Sound.playNote(Sound.PIANO, 784, whole/32);// g5 + Sound.playNote(Sound.PIANO, 831, whole/32);// ab5 + Sound.playNote(Sound.PIANO, 880, whole/16);// a5 + Sound.playNote(Sound.PIANO, 988, whole/8);// b5 + } + @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); @@ -83,30 +110,37 @@ public class Marster { 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 missions = Missions.getMissions(sc, rightMotor, leftMotor, measMotor); random = new Random(); + Delay.msDelay(2000); + playPacman(); 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(); + Delay.msDelay(5000); + System.out.println(m.name + " finished!!1one!"); } -// Sound.playSample(new File("rick.wav")); + Sound.playSample(new File("rick.wav"), Sound.VOL_MAX); + Delay.msDelay(10000); + System.exit(0); } } } \ No newline at end of file