# state_machine **Repository Path**: saac/state_machine ## Basic Information - **Project Name**: state_machine - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-07-20 - **Last Updated**: 2025-07-20 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 依赖软件 https://sourceforge.net/projects/qfsm/ https://sourceforge.net/projects/smc/files/smc/ jre 是 openjdk 自动生成的,当前选用这个版本的jdk: https://download.java.net/java/GA/jdk24.0.2/fdc5d0102fe0414db21410ad5834341f/12/GPL/openjdk-24.0.2_windows-x64_bin.zip 参照 setx.bat 配置 java 环境即可 # 用法 使用 Qfsm 软件构建状态图保存为 .fsm 文件 使用 Qfsm 软件导出 sm 文件:File -> Export -> SMC... 即可 为 sm 文件添加头文件包含,修改头部增加 header 行即可: ``` %class OffsetSM %header OffsetSM.h ``` 生成状态机框架: java -jar ../../tools/smc_7_6_0/bin/Smc.jar -crtp -c++ ./OffsetSM.sm 生成 OffsetSM_sm.h、OffsetSM_sm.cpp 修改 OffsetSM_sm.cpp 第 9 行为:#include "OffsetSM_sm.h" 拿来使用: 建立类 OffsetSM.h、OffsetSM.cpp,引用头文件 OffsetSM_sm.h 详细用法见 OffsetSM.cpp 里面的 main 函数即可 编译时引用头文件即可: ./tools/smc_7_6_0/lib/C/statemap.h ./tools/smc_7_6_0/lib/C++/statemap.h ./tools/smc_7_6_0/lib/ObjC/statemap.h g++ OffsetSM.cpp OffsetSM_sm.cpp -I . -I ../../tools/smc_7_6_0/lib/C++/ -DCRTP