目前,我正在我的包裹头部周围适当的状态机,我发现这篇文章这似乎是正是我一直在寻找: https://aticleworld.com/state-machine-using-c/ 在理解基于表的状态机表的过程我偶然发现了这段代码,在我看来很难阅读.
所以这就是我能来的:
eSystemState是一个typedefed枚举,指示当前状态.
eSystemEvent是一个typedefed枚举,指示当前事件.
pfEventHandler是一个返回eSystemState的typedefed函数指针.
afEventHandler是一个返回eSystemState的函数指针的typedefed二维数组(受"last_State"和"last_Event"限制).
接下来是每种类型事件的一些事件处理程序.然后开始主要,一些初始化,它来了.
之前定义的类型afEventHandler充满了内容,但在那里使用的操作对我来说是一个很大的谜.
我知道,对于每个花括号,一个新的'row'被填充,但是枚举周围的方括号是什么意思,为什么一个人显然可以为这个中的任何内容赋值?
我知道枚举本质上是数字,我怀疑它是一些(对我来说)超级模糊的方式来解决数组中的特定元素.
我错了吗?
// Table to define valid states and event of finite state machine
static afEventHandler StateMachine = {
[Idle_State] ={[Card_Insert_Event]= InsertCardHandler },
[Card_Inserted_State] ={[Pin_Enter_Event] = EnterPinHandler },
[Pin_Eentered_State] ={[Option_Selection_Event] = OptionSelectionHandler},
[Option_Selected_State] ={[Amount_Enter_Event] = EnterAmountHandler},
[Amount_Entered_State] ={[Amount_Dispatch_Event] = AmountDispatchHandler},
};
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
144 次 |
| 最近记录: |