X-Git-Url: https://git.martlubbers.net/?a=blobdiff_plain;f=dsl%2Fruntime%2Fsrc%2Fnl%2Fru%2Fdes%2FMarster.java;h=81ee5f69fc11002bbd063afdeec9362b6e00a61a;hb=1b13ccb59263b66abc763fb8f298b14bdebc9582;hp=b31bb8737f818b0d19e38e6960568f1fa3322797;hpb=34dae1e7f9c49481d90b3d26978cc5ab52ccc050;p=des2015.git diff --git a/dsl/runtime/src/nl/ru/des/Marster.java b/dsl/runtime/src/nl/ru/des/Marster.java index b31bb87..81ee5f6 100644 --- a/dsl/runtime/src/nl/ru/des/Marster.java +++ b/dsl/runtime/src/nl/ru/des/Marster.java @@ -1,24 +1,29 @@ package nl.ru.des; -import java.util.Queue; +import java.util.LinkedList; +import java.util.Random; -import lejos.hardware.Button; import lejos.hardware.ev3.EV3; import lejos.hardware.ev3.LocalEV3; import lejos.hardware.lcd.Font; import lejos.hardware.lcd.TextLCD; import lejos.hardware.motor.EV3LargeRegulatedMotor; +import lejos.hardware.motor.EV3MediumRegulatedMotor; import lejos.hardware.port.MotorPort; import lejos.hardware.sensor.EV3ColorSensor; import lejos.hardware.sensor.EV3GyroSensor; import lejos.hardware.sensor.EV3TouchSensor; import lejos.hardware.sensor.EV3UltrasonicSensor; import lejos.hardware.sensor.NXTLightSensor; +import lejos.robotics.RegulatedMotor; import lejos.robotics.SampleProvider; -import lejos.robotics.subsumption.Arbitrator; +import nl.ru.des.sensors.BTController; +import nl.ru.des.sensors.RemoteSensors; +import nl.ru.des.sensors.SensorCollector; public class Marster { public static Arbitrator arb; + public static Random random; @SuppressWarnings("resource") public static void main(String[] args) { @@ -33,6 +38,7 @@ public class Marster { 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..."); SampleProvider leftTouch = new EV3TouchSensor(brick.getPort("S1")).getTouchMode(); SampleProvider rightTouch = new EV3TouchSensor(brick.getPort("S2")).getTouchMode(); @@ -44,22 +50,24 @@ public class Marster { SampleProvider color = new EV3ColorSensor(brick.getPort("S4")).getColorIDMode(); RemoteSensors rs = new RemoteSensors(leftTouch, rightTouch, frontUltra, color); - LCDPrinter.print("Start BT..."); - Queue msgs = BTController.startSlave(); - rs.start(msgs); + BTController.startSlave(); + rs.start(BTController.buf); } else { + 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..."); - EV3LargeRegulatedMotor rightMotor = new EV3LargeRegulatedMotor(MotorPort.A); - EV3LargeRegulatedMotor leftMotor = new EV3LargeRegulatedMotor(MotorPort.B); - EV3LargeRegulatedMotor measMotor = new EV3LargeRegulatedMotor(MotorPort.C); -// leftMotor.setSpeed(Constants.speed); -// rightMotor.setSpeed(Constants.speed); -// measMotor.setSpeed(100); -// rightMotor.setAcceleration(Constants.acceleration); -// leftMotor.setAcceleration(Constants.acceleration); -// measMotor.setAcceleration(100); - + RegulatedMotor rightMotor = new EV3LargeRegulatedMotor(MotorPort.A); + RegulatedMotor leftMotor = new EV3LargeRegulatedMotor(MotorPort.B); + RegulatedMotor measMotor = new EV3MediumRegulatedMotor(MotorPort.C); + leftMotor.setSpeed(Constants.speed); + rightMotor.setSpeed(Constants.speed); + measMotor.setSpeed(50); + rightMotor.setAcceleration(Constants.acceleration); + leftMotor.setAcceleration(Constants.acceleration); + measMotor.setAcceleration(100); + LCDPrinter.print("Loading touch sensors..."); SampleProvider leftLight = new NXTLightSensor(brick.getPort("S1")).getRedMode(); SampleProvider rightLight = new NXTLightSensor(brick.getPort("S2")).getRedMode(); @@ -68,19 +76,19 @@ public class Marster { SampleProvider backUltra = new EV3UltrasonicSensor(brick.getPort("S3")).getDistanceMode(); LCDPrinter.print("Loading gyro sensor..."); - SampleProvider gyro = new EV3GyroSensor(brick.getPort("S4")).getAngleAndRateMode(); + SensorCollector sc = new SensorCollector(backUltra, leftLight, rightLight, new EV3GyroSensor(brick.getPort("S4"))); - LCDPrinter.print("Start BT..."); - BTController.startMaster(brick.getName() == "Rover5" ? "Rover6" : "Rover8", new SensorCollector(backUltra, leftLight, rightLight, gyro)); + BTController.startMaster(slave, sc); LCDPrinter.print("Finished loading"); - Button.waitForAnyPress(); -// Arbitrator a; -// LinkedList missions = Missions.getMissions(sensors, rightMotor, leftMotor, colorMemory); -// for(Mission m : missions){ -// LCDPrinter.print("Start " + m.name + " mission..."); -// a = new Arbitrator(m.behaviours); -// a.start(); -// } + LinkedList missions = Missions.getMissions(sc, rightMotor, leftMotor, measMotor); + random = new Random(); + for(Mission m : missions){ + LCDPrinter.print("Start " + m.name + " mission..."); + arb = new Arbitrator(m.behaviours); + sc.resetColors(); + arb.start(); + LCDPrinter.print(m.name + " finished!!1one!"); + } } } } \ No newline at end of file