# 状态机源码 **Repository Path**: guanmingweiabc/state-machine-source-code ## Basic Information - **Project Name**: 状态机源码 - **Description**: 状态机仓库 - **Primary Language**: C - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 3 - **Forks**: 2 - **Created**: 2022-11-08 - **Last Updated**: 2024-04-13 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ``` # 状态机源码 #### 介绍 状态机源码 #### 软件架构 无 #### 安装教程 直接拷贝就能用 #### 使用说明 #include #include "Windows.h" #include "statemachine.h" void Event1(smEvent_t* event) { static int cnt = 0; switch (event->curState) { case SM_EVENT_ENTER: printf("进入状态机1\r\n"); break; case SM_EVENT_EXEC: SmSetNextEvent(event, 1); printf("状态机1执行了%d\r\n", cnt++); break; case SM_EVENT_EXIT: printf("离开状态机1\r\n"); break; } } void Event2(smEvent_t* event) { static int cnt = 0; switch (event->curState) { case SM_EVENT_ENTER: printf("进入状态机2\r\n"); break; case SM_EVENT_EXEC: SmSetNextEvent(event, 0); printf("状态机2执行了%d\r\n", cnt++); break; case SM_EVENT_EXIT: printf("离开状态机2\r\n"); break; } } smEvent_t eventList[2]; smCore_t smCore; int main() { SmEventInit(&eventList[0], Event1, 0); SmEventInit(&eventList[1], Event2, 1); SmInit(&smCore, eventList, 2); while (1) { SmProcess(&smCore); Sleep(1000); } //ALiCloudToMqttTopic((char*)"123", (char*)"456", (char *)test,buf, 100); //std::cout << buf; } #### 参与贡献 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request #### 特技 1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md 2. Gitee 官方博客 [blog.gitee.com](https://blog.gitee.com) 3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解 Gitee 上的优秀开源项目 4. [GVP](https://gitee.com/gvp) 全称是 Gitee 最有价值开源项目,是综合评定出的优秀开源项目 5. Gitee 官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help) 6. Gitee 封面人物是一档用来展示 Gitee 会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/) ```