final commit
[des2015.git] / dsl / xtend / src / robots / missions / generator / TaskDSLGenerator.xtend
index c11ade8..1df66c0 100644 (file)
@@ -38,6 +38,7 @@ import java.util.LinkedList;
 
 import lejos.robotics.subsumption.Behavior;
 import lejos.robotics.RegulatedMotor;
+import lejos.robotics.Color;
 
 import nl.ru.des.sensors.SensorCollector;
 
@@ -64,6 +65,7 @@ public class Missions{
 package nl.ru.des;
 
 import lejos.robotics.RegulatedMotor;
+import lejos.robotics.Color;
 import nl.ru.des.sensors.SensorCollector;
 
 public class «b.name»Behaviour extends BasicBehaviour {
@@ -78,7 +80,7 @@ public class «b.name»Behaviour extends BasicBehaviour {
        «ENDIF»
        
        @Override public void action(){
-               LCDPrinter.print("Start: «b.name»");
+               System.out.println("Start: «b.name»");
                super.action();
                «FOR a : b.actions»
                        «IF a.whichMotor != null»
@@ -104,11 +106,15 @@ public class «b.name»Behaviour extends BasicBehaviour {
                                «ELSE»
                                        turnRandom(«a.turnType.start», «a.turnType.end»);
                                «ENDIF»
-                       «ELSE»
+                       «ELSEIF a.rl != null»
                        measure«a.rl.d.toString()»();
+                       «ELSE»
+                       if(!suppressed){
+                               sensors.saveVar("«a.varName.toString()»");
+                       }
                        «ENDIF»
                «ENDFOR»
-               LCDPrinter.print("Stop: «b.name»");
+               System.out.print("Stop: «b.name»");
        }
 }
        '''
@@ -123,8 +129,8 @@ public class Constants{
        
        def CharSequence printExpression(StoppingExpression e)'''
        «IF e.scond != null»
-               «IF !e.scond.colors.nullOrEmpty»
-               sensors.collected(new int[]{«FOR c : e.scond.colors SEPARATOR ","»«c.d.ordinal»«ENDFOR»})
+               «IF e.scond.varName != null»
+               sensors.collected("«e.scond.varName.toString()»")
                «ELSEIF e.scond.touch != null»
                sensors.«e.scond.touch.d.toString()»Touch()
                «ELSEIF e.scond.light != null»
@@ -132,7 +138,7 @@ public class Constants{
                «ELSEIF e.scond.dist != null»
                sensors.«e.scond.dist.d.toString()»Distance()
                «ELSEIF e.scond.color != null»
-               sensors.color() == «e.scond.color.d.ordinal»
+               sensors.color() == Color.«e.scond.color.d.getName()»
                «ELSE»
                false
                «ENDIF»