简练状态机的实现

作者: SunShine__鹏 | 来源:发表于2019-05-05 17:15 被阅读1次

#include<stdio.h>

typedef enum{

Start_state,

Doing_state,

End_state

}def_state;

typedef enum{

Start_event,

Doing_event,

End_event

}def_event;

typedef void (*func)(char* pData);

typedef struct{

def_state current_state;

def_event current_event;

def_state next_state;

func callback;

}def_Machine_state;

void start_task(char *pData)

{

    printf("start task!\n");

}

void doing_task(char *pData)

{

    printf("doing task!\n");

}

void end_task(char *pData)

{

    printf("end task!\n");

}

def_Machine_state Machine_run[]={

Start_state, Start_event, Doing_state, start_task,

Doing_state, Doing_event, End_event,  doing_task,

End_event, End_event, End_event,    end_task,

};

void loop_machine(def_event trigger_eve,char *pData)

{

    int size;

    size = sizeof(Machine_run)/sizeof(def_Machine_state);

    for(int i=0; i<size;i++)

    {

        if(trigger_eve == Machine_run[i].current_event)

        {

        Machine_run[i].callback(pData) ;

        }

    }

}

main()

{

char *debug;

while(1){

loop_machine(Start_event,debug);

loop_machine(Doing_event,debug);

loop_machine(End_event,debug);

}

}

该简单状态机设置了三个状态,三个事件触发。

运行结果

相关文章

  • 简练状态机的实现

    #include typedef enum{ Start_state, Doing_state, End_stat...

  • 设计模式-状态机

    对于一个状态机来说,需要分成2个部分来考虑状态机,一是状态机本身,二是状态机的实现。 状态机推演 只有状态机本身是...

  • 有限状态机实现-状态机介绍

    这个系列最终实现的状态机并不是一个标准的状态机,把状态机的很多标准的概念进行了简化,对概念的东西做了减法,实现了具...

  • 64 - 状态模式

    状态模式一般用来实现状态机,而状态机常用在游戏、工作流引擎等系统开发中。不过,状态机的实现方式有多种,除了状态模式...

  • 3. 状态机的设计

    参考链接:1. C语言实现简单状态机2. C语言最优状态机规范3. geek青年的状态机

  • Spring StateMachine状态机引擎在项目中的应用(

    状态机配置 状态机配置有两种方式, 创建config类,实现StateMachineConfigurer(或者根据...

  • SpringStateMachine状态机之五-流程配置

    状态机配置 状态机配置有两种方式, 创建config类,实现StateMachineConfigurer(或者根据...

  • Unity高级——状态机——有限状态机

    一、状态机 状态机能够分离逻辑代码,提高代码的可维护性和重用性 本节课我们来学习,在Unity中使用状态机,来实现...

  • 状态模式

    一. 什么是状态模式 状态模式是状态机的一种实现方式. 状态机又叫有限状态机(FSM) 状态模式不常用, 有点像组...

  • GDGeek使用总结

    FSM(有限状态机) GDGeek的FSM实现了分层状态机,并且整合了任务(Task)和插值动画(Tween),使...

网友评论

    本文标题:简练状态机的实现

    本文链接:https://www.haomeiwen.com/subject/hdvhoqtx.html