X-Git-Url: https://git.martlubbers.net/?a=blobdiff_plain;f=dsl%2Fxtend%2Fsrc%2Frobots%2Fmissions%2Fgenerator%2FTaskDSLGenerator.xtend;fp=dsl%2Fxtend%2Fsrc%2Frobots%2Fmissions%2Fgenerator%2FTaskDSLGenerator.xtend;h=f413af6b8aa070e6674170b00155fe42062876c5;hb=1b13ccb59263b66abc763fb8f298b14bdebc9582;hp=ff72ba425344267d4a4702f13c870df0e4f1f83a;hpb=9fa82649c6bc8e21f6ecfeb95c8c15db7c8f8352;p=des2015.git diff --git a/dsl/xtend/src/robots/missions/generator/TaskDSLGenerator.xtend b/dsl/xtend/src/robots/missions/generator/TaskDSLGenerator.xtend index ff72ba4..f413af6 100644 --- a/dsl/xtend/src/robots/missions/generator/TaskDSLGenerator.xtend +++ b/dsl/xtend/src/robots/missions/generator/TaskDSLGenerator.xtend @@ -45,7 +45,7 @@ public class Missions{ public static LinkedList getMissions(final SensorCollector sensors, RegulatedMotor rightMotor, RegulatedMotor leftMotor, RegulatedMotor measMotor){ LinkedList missions = new LinkedList(); - «FOR m : mission» + «FOR m : mission SEPARATOR "));" AFTER "));"» missions.add(new Mission("«m.name»", new Behavior[]{ «FOR b : m.behaviours SEPARATOR "," AFTER ","»new «b.name»Behaviour(sensors, rightMotor, leftMotor, measMotor) «ENDFOR» @@ -54,7 +54,7 @@ public class Missions{ return «printExpression(m.se)»; } }} - «ENDFOR»)); + «ENDFOR» return missions; } } @@ -73,7 +73,7 @@ public class «b.name»Behaviour extends BasicBehaviour { } «IF b.tc != null» @Override public boolean takeControl(){ - return getSuppressed() == SuppressedState.IN_ACTION || «printExpression(b.tc)»; + return «printExpression(b.tc)»; } «ENDIF» @@ -89,17 +89,21 @@ public class «b.name»Behaviour extends BasicBehaviour { «a.whichMotor.d.toString()»Motor.«a.moveDir.d.toString()»(); «ELSEIF a.time != null» time = System.currentTimeMillis(); - while(getSuppressed() != SuppressedState.SUPPRESSED«IF a.time.time > 0» && System.currentTimeMillis()-time>«a.time.time»«ENDIF»){ + while(!suppressed«IF a.time.time > 0» && System.currentTimeMillis()-time<«a.time.time»«ENDIF»){ Thread.yield(); } - «ELSEIF a.turnDir != null» + «ELSEIF a.turnType != null» «IF a.acc > 0» leftMotor.setAcceleration(«a.acc»); leftMotor.setSpeed(«a.spd»); rightMotor.setAcceleration(«a.acc»); rightMotor.setSpeed(«a.spd»); «ENDIF» - «a.turnDir.d.toString()»Turn(«a.degrees»); + «IF a.turnType.turnDir != null» + «a.turnType.turnDir.d.toString()»Turn(«a.turnType.degrees»); + «ELSE» + turnRandom(«a.turnType.start», «a.turnType.end»); + «ENDIF» «ELSE» measure(); «ENDIF» @@ -131,6 +135,8 @@ public class Constants{ «ELSEIF e.scond.color != null» sensors.color() == «e.scond.color.d.ordinal» «ENDIF» + «ELSEIF e.negscond != null» + !(«printExpression(e.negscond)») «ELSE» «IF e.op.d.equals(OperatorE.AND)» «FOR ex : e.s BEFORE "(" SEPARATOR "&&" AFTER ")"»«printExpression(ex)»«ENDFOR»