final commit
[des2015.git] / dsl / runtime / specs / wander.tdsl
index be30d5a..f7e3697 100644 (file)
@@ -1,6 +1,13 @@
 Acceleration 1000
 Speed 150
 
+Behaviour Drive
+       take control:
+       action:
+               left motor forward
+               right motor forward
+               wait forever
+               
 Behaviour Wander
        take control:
        action:
@@ -31,28 +38,125 @@ Behaviour StayInFieldB
                right motor forward
                wait 1000 ms
                
-Behaviour MeasureLake
-       take control: (|| Color is Green Color is Blue Color is Red)
+Behaviour GreenLake
+       take control: (&& (|| Color is Green Color is Yellow) not flag set GreenLake)
+       action:
+               measure Lake
+               set flag GreenLake
+               
+Behaviour BlueLake
+       take control: (&& Color is Blue not flag set BlueLake)
+       action:
+               measure Lake
+               set flag BlueLake
+               
+Behaviour RedLake
+       take control: (&& Color is Red not flag set RedLake)
        action:
-               measure
+               measure Lake
+               set flag RedLake
                
-Behaviour BumpL
+Behaviour MeasureRock
+       take control: (&& Distance dangerous at front not flag set Measured)
+       action:
+               measure Rock
+               set flag Measured
+       
+Behaviour AvoidL
        take control: Touched on left
        action:
-               left motor backward with speed 50 acceleration 1000
+               left motor forward
                right motor backward
-               wait 2000 ms
                
-Behaviour BumpR
+Behaviour AvoidR
        take control: Touched on right
        action:
-               right motor backward with speed 50 acceleration 1000
+               right motor forward
                left motor backward
-               wait 2000 ms
+                               
+Behaviour PushL
+       take control: Touched on left
+       action:
+               right motor forward
+               left motor forward with speed 50 acceleration 1000
+               
+Behaviour PushR
+       take control: Touched on right
+       action:
+               left motor forward
+               right motor forward with speed 50 acceleration 1000
+
+Behaviour PushB
+       take control: (&& Touched on left Touched on right)
+       action:
+               set flag Pushing
+               left motor forward
+               right motor forward
+               wait forever
+
+Behaviour StopPushing
+       take control: (&& not Touched on left not Touched on right flag set Pushing)
+       action:
+               left motor backward
+               right motor backward
+               wait 1000ms
+               turn left exactly 180 degrees
+               set flag Pushed
+               
+Behaviour FoundLineL
+       take control: (&& (|| not flag set LeftLine not flag set RightLine) Light on left not Light on right Color is Black)
+       action:
+               left motor backward with speed 75 acceleration 1000
+               right motor backward with speed 75 acceleration 1000
+               wait 1000 ms
+               set flag LeftLine
+
+Behaviour FoundLineR
+       take control: (&& (|| not flag set LeftLine not flag set RightLine) Light on right not Light on left Color is Black)
+       action:
+               left motor backward with speed 75 acceleration 1000
+               right motor backward with speed 75 acceleration 1000
+               wait 1000 ms
+               set flag RightLine
+               
+Behaviour FollowLGood
+       take control: (&& flag set LeftLine Light on left)
+       action:
+               left motor forward with speed 75 acceleration 1000
+               right motor backward with speed 60 acceleration 1000
+
+Behaviour FollowLBad
+       take control: (&& flag set LeftLine not Light on left)
+       action:
+               left motor forward  with speed 75 acceleration 1000
+               right motor forward with speed 100 acceleration 1000
+               
+Behaviour FollowRGood
+       take control: (&& flag set RightLine Light on right)
+       action:
+               right motor forward with speed 75 acceleration 1000
+               left motor backward with speed 60 acceleration 1000
+
+Behaviour FollowRBad
+       take control: (&& flag set RightLine not Light on right)
+       action:
+               right motor forward  with speed 75 acceleration 1000
+               left motor forward with speed 100 acceleration 1000
+               
+Behaviour FoundParkingSpace
+       take control: (&& (|| flag set LeftLine flag set RightLine) Color is White)
+       action:
+               set flag Parked
                
-Mission findBlueLakeWhileAvoidingRocks
-       using Wander BumpR BumpL StayInFieldB StayInFieldL StayInFieldR and stops when Color is Blue
-Mission findAllLakesAndMeasureThem
-       using Wander MeasureLake StayInFieldB StayInFieldL StayInFieldR and stops when Collected at least Green Blue Red
-Mission justWander 
-       using Wander StayInFieldB StayInFieldL StayInFieldR and stops when Color is Cyan
\ No newline at end of file
+Mission FindAndMeasureRocks
+       using Drive StayInFieldR StayInFieldL StayInFieldB AvoidL AvoidR MeasureRock
+       and stops when flag set Measured
+Mission FindAndMeasureLakes
+       using Drive StayInFieldR StayInFieldL StayInFieldB AvoidL AvoidR GreenLake RedLake BlueLake 
+       and stops when (&& flag set GreenLake flag set RedLake flag set BlueLake)
+Mission PushRocks
+       using Drive PushL PushR PushB StayInFieldR StayInFieldL StayInFieldB StopPushing
+       and stops when flag set Pushed
+Mission Park
+       using Drive FoundLineL FoundLineR FollowLBad FollowLGood FollowRBad FollowRGood StayInFieldB FoundParkingSpace
+       and stops when flag set Parked
\ No newline at end of file