summaryrefslogtreecommitdiff
path: root/digital/io/src/top_cb.c
diff options
context:
space:
mode:
Diffstat (limited to 'digital/io/src/top_cb.c')
-rw-r--r--digital/io/src/top_cb.c122
1 files changed, 122 insertions, 0 deletions
diff --git a/digital/io/src/top_cb.c b/digital/io/src/top_cb.c
new file mode 100644
index 00000000..52a5129d
--- /dev/null
+++ b/digital/io/src/top_cb.c
@@ -0,0 +1,122 @@
+/*
+ * THIS IS AN AUTOMATICALLY GENERATED FILE, DO NOT EDIT!
+ *
+ * Skeleton for top callbacks implementation.
+ *
+ *
+ */
+#include "common.h"
+#include "fsm.h"
+#include "top_cb.h"
+
+/*
+ * START =ok=>
+ * => GET_SAMPLES
+ * Go to take some samples. The sequence shall be adapt to take the correct number of samples.
+ */
+fsm_branch_t
+top__START__ok (void)
+{
+ return top_next (START, ok);
+}
+
+/*
+ * GET_SAMPLES =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.
+ */
+fsm_branch_t
+top__GET_SAMPLES__samples_took_ice_distributor_empty_not_enough_time (void)
+{
+ return top_next (GET_SAMPLES, samples_took_ice_distributor_empty_not_enough_time);
+}
+
+/*
+ * GET_SAMPLES =samples_took=>
+ * => GET_ICE
+ * The samples had been took and now the ice is missing.
+ */
+fsm_branch_t
+top__GET_SAMPLES__samples_took (void)
+{
+ return top_next (GET_SAMPLES, samples_took);
+}
+
+/*
+ * GET_SAMPLES =collector_full=>
+ * => GO_TO_GOAL
+ * All the room in the robot are full.
+ */
+fsm_branch_t
+top__GET_SAMPLES__collector_full (void)
+{
+ return top_next (GET_SAMPLES, collector_full);
+}
+
+/*
+ * GET_SAMPLES =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.
+ */
+fsm_branch_t
+top__GET_SAMPLES__samples_took_ice_distributor_empty_enough_time (void)
+{
+ return top_next (GET_SAMPLES, samples_took_ice_distributor_empty_enough_time);
+}
+
+/*
+ * GO_TO_GOAL =samples_deposed_ice_distributor_empty=>
+ * => GET_ADV_ICE
+ * Go to get some adversary ice because our distributor is empty.
+ */
+fsm_branch_t
+top__GO_TO_GOAL__samples_deposed_ice_distributor_empty (void)
+{
+ return top_next (GO_TO_GOAL, samples_deposed_ice_distributor_empty);
+}
+
+/*
+ * 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.
+ */
+fsm_branch_t
+top__GO_TO_GOAL__samples_deposed (void)
+{
+ return top_next (GO_TO_GOAL, samples_deposed);
+}
+
+/*
+ * 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.
+ */
+fsm_branch_t
+top__GET_ICE__ice_took (void)
+{
+ return top_next (GET_ICE, ice_took);
+}
+
+/*
+ * GET_ADV_ICE =ice_took_collector_not_full=>
+ * => GET_SAMPLES
+ * There is enough time to get some samples and go to the goal.
+ */
+fsm_branch_t
+top__GET_ADV_ICE__ice_took_collector_not_full (void)
+{
+ return top_next (GET_ADV_ICE, ice_took_collector_not_full);
+}
+
+/*
+ * GET_ADV_ICE =ice_took=>
+ * => GO_TO_GOAL
+ * The ice has been taken, now the robot shall depose it.
+ */
+fsm_branch_t
+top__GET_ADV_ICE__ice_took (void)
+{
+ return top_next (GET_ADV_ICE, ice_took);
+}
+
+