]> rtime.felk.cvut.cz Git - eurobot/public.git/blobdiff - src/robofsm/fsmmove.dot
robofsm: Add files with statecharts
[eurobot/public.git] / src / robofsm / fsmmove.dot
diff --git a/src/robofsm/fsmmove.dot b/src/robofsm/fsmmove.dot
new file mode 100644 (file)
index 0000000..8b6f7ce
--- /dev/null
@@ -0,0 +1,35 @@
+digraph statecharts {
+ratio = 1.5;
+  subgraph FSMMotion {
+    MotionBase [peripheries=2]
+    MotionBase [label=<MotionBase>]
+    MotionBase -> wait_for_command [style = dashed]
+    subgraph cluster_MotionBase {
+      label = "MotionBase"
+      wait_for_command [peripheries=2]
+      lost [label=<lost>]
+      movement [label=<movement>]
+      wait_and_try_again [label=<wait_and_try_again>]
+      wait_for_command [label=<wait_for_command>]
+    }
+  }
+  subgraph asynchronous_state_machine {
+    MotionBase [peripheries=2]
+  }
+  wait_for_command -> movement [label = "evNewTarget"]
+  wait_for_command -> wait_and_try_again [label = "evNewTarget"]
+  movement -> lost [label = "evTrajectoryLost"]
+  movement -> wait_for_command [label = "evMoveStop"]
+  movement -> wait_and_try_again [label = "evObstacleSide"]
+  movement -> wait_and_try_again [label = "evObstacleBehind"]
+  movement -> wait_for_command [label = "evObstacle"]
+  movement -> wait_and_try_again [label = "evObstacle"]
+  movement -> wait_for_command [label = "evTrajectoryDone"]
+  lost -> movement [label = "evTimer"]
+  lost -> wait_and_try_again [label = "evTimer"]
+  lost -> wait_for_command [label = "evMoveStop"]
+  wait_and_try_again -> movement [label = "evTimer"]
+  wait_and_try_again -> wait_for_command [label = "evTimer"]
+  wait_and_try_again -> wait_for_command [label = "evTrajectoryDone"]
+  wait_and_try_again -> wait_for_command [label = "evMoveStop"]
+}