From 5e074e1df70ce948dbc72c13610a12d925af5a00 Mon Sep 17 00:00:00 2001 From: Nicolas Schodet Date: Fri, 8 May 2009 23:07:28 +0200 Subject: * digital/io: - added fsm timeout handling. --- digital/io/src/fsm.h | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'digital/io/src/fsm.h') diff --git a/digital/io/src/fsm.h b/digital/io/src/fsm.h index 8700cadc..cf5ce15e 100644 --- a/digital/io/src/fsm.h +++ b/digital/io/src/fsm.h @@ -74,6 +74,12 @@ struct fsm_t u8 state_init; /** Current active state. */ u8 state_current; + /** State timeout table. */ + const u16 *state_timeout_table; + /** Current state timeout if not 0xffff. */ + u16 state_timeout; + /** Event to generate on state timeout. */ + u8 state_timeout_event; #ifdef HOST /** FSM name. */ const char *name; @@ -89,6 +95,10 @@ typedef struct fsm_t fsm_t; void fsm_init (fsm_t *fsm); +/** Handle state timeout, return 1 if a event was handled. */ +uint8_t +fsm_handle_timeout (fsm_t *fsm); + /** Handle an event on the given FSM. * @return * - 0 if this FSM does not handle this event ; -- cgit v1.2.3