summaryrefslogtreecommitdiffhomepage
path: root/digital/io/src/top.fsm
diff options
context:
space:
mode:
authorNicolas Schodet2008-04-10 01:03:51 +0200
committerNicolas Schodet2008-04-10 01:03:51 +0200
commit91233c681919a79f76206d8845b16006608803ad (patch)
treea58441fd5b818ec62a9a0a1e16076087596746af /digital/io/src/top.fsm
parent1d62fb05a261f1816a5be47d31abe64cdebcff00 (diff)
* digital/io/src:
- fixed build.
Diffstat (limited to 'digital/io/src/top.fsm')
-rw-r--r--digital/io/src/top.fsm52
1 files changed, 52 insertions, 0 deletions
diff --git a/digital/io/src/top.fsm b/digital/io/src/top.fsm
new file mode 100644
index 00000000..1da78745
--- /dev/null
+++ b/digital/io/src/top.fsm
@@ -0,0 +1,52 @@
+# Top FSM.
+top
+
+States:
+ START
+ GET_SAMPLES
+ GET_ICE
+ GO_TO_GOAL
+ GET_ADV_ICE
+
+Events:
+ ok
+ samples_took
+ collector_full
+ ice_took
+ samples_deposed
+ samples_took_ice_distributor_empty_not_enough_time
+ samples_took_ice_distributor_empty_enough_time
+ samples_deposed_ice_distributor_empty
+ ice_took_collector_full
+ not_enough_time
+ ice_took_collector_not_full
+
+START:
+ ok -> GET_SAMPLES
+ Go to take some samples. The sequence shall be adapt to take the correct number of samples.
+
+GET_SAMPLES:
+ samples_took -> GET_ICE
+ The samples had been took and now the ice is missing.
+ samples_took_ice_distributor_empty_not_enough_time -> GO_TO_GOAL
+ Some samples had been took and there is not enough time to get some ice.
+ samples_took_ice_distributor_empty_enough_time -> GET_ADV_ICE
+ Go to take ice in the adversary distributor because the one in our part of the table is empty.
+ collector_full -> GO_TO_GOAL
+ All the room in the robot are full.
+
+GET_ICE:
+ ice_took -> GO_TO_GOAL
+ The ice had been taken and the collector is full. The robot shall go to depose it into the goal.
+
+GO_TO_GOAL:
+ samples_deposed -> GET_SAMPLES
+ The samples had been deposed, it shall try to get more samples. This state will call the getsamples FSM and the moveFSM.
+ samples_deposed_ice_distributor_empty -> GET_ADV_ICE
+ Go to get some adversary ice because our distributor is empty.
+
+GET_ADV_ICE:
+ ice_took -> GO_TO_GOAL
+ The ice has been taken, now the robot shall depose it.
+ ice_took_collector_not_full -> GET_SAMPLES
+ There is enough time to get some samples and go to the goal.