FSM Editor¶
🚀 Launch here: ev2025-fsm-editor.web.app
📋 Overview¶
The FSM Editor is a powerful visual tool for designing Finite State Machines (FSMs) for embedded systems, particularly targeting Qt for Embedded and vehicle control logic.
You can easily:
- Load a DBC file to pick vehicle signals
- Drag and drop State, Condition, Action, and Comment blocks
- Connect nodes visually to form your FSM
- Click on signals to build conditions and actions
- Save FSM directly into a clean JSON format ready for embedded use
🛠 Main Features¶
| Feature | Details |
|---|---|
| 📤 Load DBC File | Parses signals into a tree structure |
| ➕ Add State Node | Create FSM states |
| ⚙️ Add Condition Block | Create conditions to trigger transitions |
| 🎬 Add Action Block | Assign values to signals during transitions |
| 💬 Add Comment Box | Add free-floating notes anywhere |
| 📂 Load JSON | Load a previously saved FSM drawing |
| 💾 Save Drawing | Save the visual graph layout (ReactFlow format) |
| 📥 Save FSM | Export final FSM in ready-to-deploy JSON |
| 🔍 Search DBC Signals | Search by Node, Message, Signal, Comment, Value Description |
| 🖱️ Click Signal to Insert | Quickly populate conditions and actions |
| 📈 Highlight Selected Block | Selected blocks visually highlighted |
🔥 How to Use¶
- Load a DBC file to bring in vehicle signals
- Add State nodes representing different FSM states
- Connect State ➔ Condition ➔ Action ➔ Next State
- Click on DBC signals to auto-populate Conditions or Actions
- Use
in,eq,ne, etc. operators while defining conditions - Save your FSM as JSON — ready to embed inside your Qt project!
⚡ Quick Buttons Guide¶
| Button | Description |
|---|---|
| ➕ Add State | Add a new FSM state node |
| ⚙️ Add Condition | Create a condition block |
| 🎬 Add Action | Create an action block |
| 💬 Add Comment | Create a comment box |
| 📥 Save FSM | Save the full FSM as clean JSON |
| 📂 Load JSON | Load a previous project drawing |
| 📤 Load DBC | Load a DBC file for signals |
| ❔ Help | View instructions and tips |
📸 Screenshot¶
📚 Notes¶
- Only Vehicle_Control_Unit signals are allowed inside Action blocks.
- Conditions can now use IN operator for multiple values.
- Double-click edges to rename.
- Right-click edges to delete.
- Comments are free-floating notes you can drag and drop.
🧠 Pro Tip¶
Before saving your FSM:
- Make sure you set the Initial State (the starting point of the FSM).
The tool will prompt you automatically if you forget!
🚀 Start Building your FSM:¶
👉 Click here to launch the editor