X-Git-Url: https://git.martlubbers.net/?a=blobdiff_plain;f=dsl%2Fruntime%2Fsrc%2Fnl%2Fru%2Fdes%2FMarster.java;fp=dsl%2Fruntime%2Fsrc%2Fnl%2Fru%2Fdes%2FMarster.java;h=b31bb8737f818b0d19e38e6960568f1fa3322797;hb=34dae1e7f9c49481d90b3d26978cc5ab52ccc050;hp=0000000000000000000000000000000000000000;hpb=c9506d94c22f96ba5ffea707f5040fcc9d6c3c3f;p=des2015.git diff --git a/dsl/runtime/src/nl/ru/des/Marster.java b/dsl/runtime/src/nl/ru/des/Marster.java new file mode 100644 index 0000000..b31bb87 --- /dev/null +++ b/dsl/runtime/src/nl/ru/des/Marster.java @@ -0,0 +1,86 @@ +package nl.ru.des; + +import java.util.Queue; + +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.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.SampleProvider; +import lejos.robotics.subsumption.Arbitrator; + +public class Marster { + public static Arbitrator arb; + + @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)); + + LCDPrinter.print("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("Loading touch sensors..."); + SampleProvider leftTouch = new EV3TouchSensor(brick.getPort("S1")).getTouchMode(); + SampleProvider rightTouch = new EV3TouchSensor(brick.getPort("S2")).getTouchMode(); + + LCDPrinter.print("Loading ultrasone sensor..."); + SampleProvider frontUltra = new EV3UltrasonicSensor(brick.getPort("S3")).getDistanceMode(); + + LCDPrinter.print("Loading color sensors..."); + 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); + } else { + LCDPrinter.print("Starting as as master..."); + 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); + + LCDPrinter.print("Loading touch sensors..."); + SampleProvider leftLight = new NXTLightSensor(brick.getPort("S1")).getRedMode(); + SampleProvider rightLight = new NXTLightSensor(brick.getPort("S2")).getRedMode(); + + LCDPrinter.print("Loading ultrasone sensor..."); + SampleProvider backUltra = new EV3UltrasonicSensor(brick.getPort("S3")).getDistanceMode(); + + LCDPrinter.print("Loading gyro sensor..."); + SampleProvider gyro = new EV3GyroSensor(brick.getPort("S4")).getAngleAndRateMode(); + + LCDPrinter.print("Start BT..."); + BTController.startMaster(brick.getName() == "Rover5" ? "Rover6" : "Rover8", new SensorCollector(backUltra, leftLight, rightLight, gyro)); + 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(); +// } + } + } +} \ No newline at end of file