#pragma once
#include "Type.h"
// 未测试代码
typedef struct SMItem
{
/// <summary>状态名称</summary>
const char* Name;
/// <summary>进入状态时执行的动作</summary>
void(*Enter)(struct SMItem*, void* sm);
/// <summary>运行状态时执行的动作</summary>
void (*Run)(struct SMItem*, void* sm);
/// <summary>退出状态时执行的动作</summary>
void (*Exit)(struct SMItem*, void* sm);
}SMItem_t;
typedef struct
{
/// <summary>当前状态</summary>
struct SMItem* Current;
/// <summary>下一个状态</summary>
struct SMItem* Next;
}StateMachine_t;
void StateMachineInit(StateMachine_t* sm, SMItem_t* items);
void StateMachineMain(StateMachine_t* sm);
void StateMachineGo(StateMachine_t* sm, SMItem_t* item);
|