summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--digital/io/src/ai_loader_cb.c48
-rw-r--r--digital/io/src/loader.fsm16
2 files changed, 60 insertions, 4 deletions
diff --git a/digital/io/src/ai_loader_cb.c b/digital/io/src/ai_loader_cb.c
index 0c07ee73..06e9fa17 100644
--- a/digital/io/src/ai_loader_cb.c
+++ b/digital/io/src/ai_loader_cb.c
@@ -338,6 +338,18 @@ ai__LOADER_ERROR_DOWNING__elevator_failed (void)
}
/*
+ * LOADER_ERROR_DOWNING =state_timeout=>
+ * => LOADER_ERROR
+ * post loader_errored event
+ */
+fsm_branch_t
+ai__LOADER_ERROR_DOWNING__state_timeout (void)
+{
+ main_post_event (AI_EVENT_loader_errored);
+ return ai_next (LOADER_ERROR_DOWNING, state_timeout);
+}
+
+/*
* LOADER_ERROR_DOWNING_OPEN =clamp_succeed=>
* => LOADER_DOWN
* post loader_downed event
@@ -362,6 +374,18 @@ ai__LOADER_ERROR_DOWNING_OPEN__clamp_failed (void)
}
/*
+ * LOADER_ERROR_DOWNING_OPEN =state_timeout=>
+ * => LOADER_ERROR
+ * post loader_errored event
+ */
+fsm_branch_t
+ai__LOADER_ERROR_DOWNING_OPEN__state_timeout (void)
+{
+ main_post_event (AI_EVENT_loader_errored);
+ return ai_next (LOADER_ERROR_DOWNING_OPEN, state_timeout);
+}
+
+/*
* LOADER_ERROR_UPING =elevator_succeed=>
* => LOADER_ERROR_UPING_OPEN
* open clamp
@@ -387,6 +411,18 @@ ai__LOADER_ERROR_UPING__elevator_failed (void)
}
/*
+ * LOADER_ERROR_UPING =state_timeout=>
+ * => LOADER_ERROR
+ * post loader_errored event
+ */
+fsm_branch_t
+ai__LOADER_ERROR_UPING__state_timeout (void)
+{
+ main_post_event (AI_EVENT_loader_errored);
+ return ai_next (LOADER_ERROR_UPING, state_timeout);
+}
+
+/*
* LOADER_ERROR_UPING_OPEN =clamp_succeed=>
* => LOADER_UP
* post loader_uped event
@@ -411,6 +447,18 @@ ai__LOADER_ERROR_UPING_OPEN__clamp_failed (void)
}
/*
+ * LOADER_ERROR_UPING_OPEN =state_timeout=>
+ * => LOADER_ERROR
+ * post loader_errored event
+ */
+fsm_branch_t
+ai__LOADER_ERROR_UPING_OPEN__state_timeout (void)
+{
+ main_post_event (AI_EVENT_loader_errored);
+ return ai_next (LOADER_ERROR_UPING_OPEN, state_timeout);
+}
+
+/*
* LOADER_LOAD_CLOSING =clamp_succeed=>
* full => LOADER_LOAD_UPING
* move up
diff --git a/digital/io/src/loader.fsm b/digital/io/src/loader.fsm
index 6a97681b..83972230 100644
--- a/digital/io/src/loader.fsm
+++ b/digital/io/src/loader.fsm
@@ -33,13 +33,13 @@ States:
moving to the down position
LOADER_ERROR
error while moving up, stop in an unknown state
- LOADER_ERROR_DOWNING
+ LOADER_ERROR_DOWNING [timeout=225]
error recovery moving down
- LOADER_ERROR_DOWNING_OPEN
+ LOADER_ERROR_DOWNING_OPEN [timeout=225]
error recovery moving down, open clamp
- LOADER_ERROR_UPING
+ LOADER_ERROR_UPING [timeout=225]
error recovery moving up
- LOADER_ERROR_UPING_OPEN
+ LOADER_ERROR_UPING_OPEN [timeout=225]
error recovery moving up, open clamp
LOADER_LOAD_CLOSING
close clamp
@@ -142,24 +142,32 @@ LOADER_ERROR_DOWNING:
open clamp
elevator_failed -> LOADER_ERROR
post loader_errored event
+ state_timeout -> LOADER_ERROR
+ post loader_errored event
LOADER_ERROR_DOWNING_OPEN:
clamp_succeed -> LOADER_DOWN
post loader_downed event
clamp_failed -> LOADER_ERROR
post loader_errored event
+ state_timeout -> LOADER_ERROR
+ post loader_errored event
LOADER_ERROR_UPING:
elevator_succeed -> LOADER_ERROR_UPING_OPEN
open clamp
elevator_failed -> LOADER_ERROR
post loader_errored event
+ state_timeout -> LOADER_ERROR
+ post loader_errored event
LOADER_ERROR_UPING_OPEN:
clamp_succeed -> LOADER_UP
post loader_uped event
clamp_failed -> LOADER_ERROR
post loader_errored event
+ state_timeout -> LOADER_ERROR
+ post loader_errored event
LOADER_DOWNING:
elevator_succeed -> LOADER_DOWN