Erlang gen_fsm过渡到新状态

| 我有erlang gen_fsm,我的第一个状态是:
begin({Nick}, _From, State) ->
            {reply, true, next_state, State}.
然后我有:
next_state(_Event, _From, State) -> 
        io:format(\"Test \\n\"),
        {reply, ok, begin, State}.
但是我没看到外壳上有“ 2”字条 如何正确过渡到新状态?     
已邀请:
首先,请确保begin是您的FSM的实际初始状态。您可以通过在init函数中返回类似以下内容来指定FSM的初始状态:
{ok, begin, State}
开始的地方是您的初始状态。 另外,请注意,您正在定义
Module:StateName/3
函数,只要在FSM上执行
gen_fsm:sync_send_event
,该函数就会被调用。如果尝试使用
gen_fsm:send_event
将事件发送到FSM,则应该定义一个函数
Module:StateName/2
,它是它的异步版本。 最后,尝试通过跟踪模块来调试它们,而不是添加打印输出。它非常简单,并且避免了一次又一次地重新编译代码。 此处提供更多信息。     
您可以在此处找到一些示例: http://spawnlink.com/articles/an-introduction-to-gen_fsm-erlybanks-atm/index.html 和这里: http://pdincau.wordpress.com/2010/09/07/an-introduction-to-gen_fsm-behaviour/ 希望能帮助到你     

要回复问题请先登录注册