From cb77f5164e810635816c7a783aed1adafbdd7835 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E8=B5=B5=E5=A4=A9=E6=B5=A9?=
Date: Tue, 21 Apr 2026 03:05:57 +0800
Subject: [PATCH] =?UTF-8?q?feat:=20=E6=96=B0=E5=A2=9E=E5=BF=85=E8=A6=81?=
=?UTF-8?q?=E6=95=B0=E6=8D=AE=E7=BB=93=E6=9E=84?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
fsm.h | 32 ++++++++++++++++++++++++++++++--
1 file changed, 30 insertions(+), 2 deletions(-)
diff --git a/fsm.h b/fsm.h
index 4e6941e..3851344 100644
--- a/fsm.h
+++ b/fsm.h
@@ -3,8 +3,36 @@
//
#ifndef QF_FSM_FSM_H
#define QF_FSM_FSM_H
-
-struct qf_fsm
+#include
+typedef enum
{
+ FSM_OK,
+ FSM_FAIL
+} fsm_result_e;
+
+typedef fsm_result_e (*fsm_cb)(void *userdata);
+typedef struct qf_fsm_state
+{
+ uint16_t state;
+ fsm_cb on_exit;
+ fsm_cb on_entry;
+ void *user_data;
+} fsm_state_t;
+typedef struct qf_fsm_transition
+{
+ uint16_t state;
+ uint16_t event;
+ fsm_cb on_action;
+} fsm_transition_t;
+struct qf_fsm_event
+{
+ uint16_t event;
+ void *user_data;
};
+typedef struct qf_fsm
+{
+ uint16_t current_state;
+ fsm_state_t *p_state_list;
+
+} fsm_handle_t;
#endif // QF_FSM_FSM_H