bt working, different behaviours
[des2015.git] / dsl / xtend / src / robots / missions / generator / TaskDSLGenerator.xtend
index 0e85304..84a1261 100644 (file)
@@ -24,7 +24,9 @@ class TaskDSLGenerator implements IGenerator {
                var root = resource.allContents.head as Robot;
                if(root != null){
                        fsa.generateFile("nl/ru/des/Constants.java", makeConstants(root));
-                       fsa.generateFile("nl/ru/des/Behaviours.java", makeBehaviours(root.behaviour));
+                       for(Behaviour b : root.behaviour){
+                               fsa.generateFile("nl/ru/des/" + b.name + "Behaviour.java", makeBehaviour(b));
+                       }
                        //fsa.generateFile("nl/ru/des/Missions.java", makeMissions(root.mission));
                }
        }
@@ -58,47 +60,43 @@ public class Missions{
 }      
 '''
        
-       def CharSequence makeBehaviours(EList<Behaviour> list)'''
+       def CharSequence makeBehaviour(Behaviour b)'''
 package nl.ru.des;
 
-import lejos.hardware.motor.EV3LargeRegulatedMotor;
+import lejos.robotics.RegulatedMotor;
 import nl.ru.des.sensors.SensorCollector;
 
-public class Behaviours{
-       «FOR b : list»
-       public static class «b.name»Behaviour extends BasicBehaviour {
-               public «b.name»Behaviour(SensorCollector sensors, EV3LargeRegulatedMotor rightMotor,
-                               EV3LargeRegulatedMotor leftMotor,  EV3LargeRegulatedMotor measMotor){
-                       super(sensors, rightMotor, leftMotor, measMotor);
-               }
-               «IF b.tc != null»
-               @Override public boolean takeControl(){
-                       return «printExpression(b.tc)»;
+public class «b.name»Behaviour extends BasicBehaviour {
+       public «b.name»Behaviour(SensorCollector sensors, RegulatedMotor rightMotor,
+                       RegulatedMotor leftMotor,  RegulatedMotor measMotor){
+               super(sensors, rightMotor, leftMotor, measMotor);
+       }
+       «IF b.tc != null»
+       @Override public boolean takeControl(){
+               return «printExpression(b.tc)»;
                }
-               «ENDIF»
-               
-               @Override public void action(){
-                       super.action();
-                       «FOR a : b.actions»
-                               «IF a.whichMotor != null»
-                                       «IF a.acc > 0»
-                                       «a.whichMotor.d.toString()»Motor.setAcceleration(«a.acc»);
-                                       «a.whichMotor.d.toString()»Motor.setSpeed(«a.spd»);
-                                       «ENDIF»
-                                       «a.whichMotor.d.toString()»Motor.«a.dir.d.toString()»();
-                               «ELSEIF a.measureWhat != null»
-                               «a.measureWhat.d.toString()»Measure();
-                               «ELSE»
-                               time = System.currentTimeMillis();
-                               while(!suppressed«IF a.time.time > 0» && System.currentTimeMillis()-time>«a.time.time»«ENDIF»){
-                                       Thread.yield(); 
-                               }
+       «ENDIF»
+       
+       @Override public void action(){
+               super.action();
+               «FOR a : b.actions»
+                       «IF a.whichMotor != null»
+                               «IF a.acc > 0»
+                               «a.whichMotor.d.toString()»Motor.setAcceleration(«a.acc»);
+                               «a.whichMotor.d.toString()»Motor.setSpeed(«a.spd»);
                                «ENDIF»
-                       «ENDFOR»
-                       reset();
-               }
+                               «a.whichMotor.d.toString()»Motor.«a.moveDir.d.toString()»();
+                       «ELSEIF a.measureWhat != null»
+                       «a.measureWhat.d.toString()»Measure();
+                       «ELSE»
+                       time = System.currentTimeMillis();
+                       while(!suppressed«IF a.time.time > 0» && System.currentTimeMillis()-time>«a.time.time»«ENDIF»){
+                               Thread.yield(); 
+                       }
+                       «ENDIF»
+               «ENDFOR»
+               reset();
        }
-       «ENDFOR»
 }
        '''