免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2294 | 回复: 2
打印 上一主题 下一主题

[函数] 用sys:log调试gen_fsm [复制链接]

论坛徽章:
27
水瓶座
日期:2014-08-22 21:06:34程序设计版块每日发帖之星
日期:2015-11-25 06:20:0015-16赛季CBA联赛之新疆
日期:2015-12-19 19:05:48IT运维版块每日发帖之星
日期:2015-12-25 06:20:31IT运维版块每日发帖之星
日期:2015-12-25 06:20:31IT运维版块每日发帖之星
日期:2015-12-25 06:20:3315-16赛季CBA联赛之上海
日期:2016-04-15 19:51:31程序设计版块每日发帖之星
日期:2016-04-17 06:23:29程序设计版块每日发帖之星
日期:2016-04-23 06:20:00程序设计版块每日发帖之星
日期:2016-05-26 06:20:00每日论坛发贴之星
日期:2016-05-26 06:20:0015-16赛季CBA联赛之辽宁
日期:2017-02-16 23:59:47
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-11-05 23:23 |只看该作者 |倒序浏览
  1. 16> gen_fsm:send_event(fsm,{button,"000000"}).
  2. buttion: "000000", So far: [], Code: "afw"
  3. wrong passwd: "000000"
  4. ok
  5. 17> sys:log(fsm,get,5000).                    
  6. {ok,[{{in,{'$gen_all_state_event',{button,"aaa"}}},
  7.       {fsm,initial_state_name},
  8.       #Fun<gen_fsm.0.64764857>},
  9.      {return,{fsm,initial_state_name},#Fun<gen_fsm.1.64764857>},
  10.      {{in,{'$gen_event',{button,"aaa"}}},
  11.       {fsm,initial_state_name},
  12.       #Fun<gen_fsm.0.64764857>},
  13.      {return,{fsm,initial_state_name},#Fun<gen_fsm.1.64764857>},
  14.      {{in,{'$gen_event',{button,"000000"}}},
  15.       {fsm,initial_state_name},
  16.       #Fun<gen_fsm.0.64764857>},
  17.      {return,{fsm,initial_state_name},#Fun<gen_fsm.1.64764857>}]}
  18. 18>
复制代码

论坛徽章:
27
水瓶座
日期:2014-08-22 21:06:34程序设计版块每日发帖之星
日期:2015-11-25 06:20:0015-16赛季CBA联赛之新疆
日期:2015-12-19 19:05:48IT运维版块每日发帖之星
日期:2015-12-25 06:20:31IT运维版块每日发帖之星
日期:2015-12-25 06:20:31IT运维版块每日发帖之星
日期:2015-12-25 06:20:3315-16赛季CBA联赛之上海
日期:2016-04-15 19:51:31程序设计版块每日发帖之星
日期:2016-04-17 06:23:29程序设计版块每日发帖之星
日期:2016-04-23 06:20:00程序设计版块每日发帖之星
日期:2016-05-26 06:20:00每日论坛发贴之星
日期:2016-05-26 06:20:0015-16赛季CBA联赛之辽宁
日期:2017-02-16 23:59:47
2 [报告]
发表于 2014-11-05 23:24 |只看该作者
  1. -module(fsm).
  2. -behaviour(gen_fsm).
  3. -define(SERVER, ?MODULE).

  4. %% ------------------------------------------------------------------
  5. %% API Function Exports
  6. %% ------------------------------------------------------------------


  7. %% ------------------------------------------------------------------
  8. %% gen_fsm Function Exports
  9. %% ------------------------------------------------------------------

  10. -export([init/1, state_name/2, state_name/3, handle_event/3,
  11.          handle_sync_event/4, handle_info/3, terminate/3,
  12.          code_change/4]).
  13. -compile(export_all).
  14. %% ------------------------------------------------------------------
  15. %% API Function Definitions
  16. %% ------------------------------------------------------------------

  17. start_link(_Args) ->
  18.     gen_fsm:start_link({local, ?SERVER}, ?MODULE, _Args, []).

  19. %% ------------------------------------------------------------------
  20. %% gen_fsm Function Definitions
  21. %% ------------------------------------------------------------------

  22. init(_Args) ->
  23.     {ok, initial_state_name, {[],_Args}}.

  24. state_name(_Event, State) ->
  25. io:format("state_event /2"),
  26.     {next_state, state_name, State}.

  27. state_name(_Event, _From, State) ->
  28. io:format("state_event /3"),
  29.     {reply, ok, state_name, State}.

  30. handle_event(_Event, StateName, State) ->
  31. io:format("i handle it"),
  32.     {next_state, StateName, State}.

  33. handle_sync_event(_Event, _From, StateName, State) ->
  34.     {reply, ok, StateName, State}.

  35. handle_info(_Info, StateName, State) ->
  36.     {next_state, StateName, State}.

  37. terminate(_Reason, _StateName, _State) ->
  38.     ok.

  39. code_change(_OldVsn, StateName, State, _Extra) ->
  40.     {ok, StateName, State}.

  41. %% ------------------------------------------------------------------
  42. %% Internal Function Definitions
  43. %% ------------------------------------------------------------------

  44. initial_state_name({button,Digit},{SoFar,Code})->
  45.     io:format("buttion: ~p, So far: ~p, Code: ~p~n", [Digit, SoFar, Code]),  
  46.     InputDigits = lists:append(SoFar, Digit),  
  47.     case InputDigits of  
  48.         Code ->  
  49.             do_unlock(),  
  50.             {next_state, open, {[], Code}, 10000};  
  51.         Incomplete when length(Incomplete)<length(Code) ->  
  52.             {next_state, initial_state_name, {Incomplete, Code}, 5000};  
  53.         Wrong ->  
  54.             io:format("wrong passwd: ~p~n", [Wrong]),  
  55.             {next_state, initial_state_name, {[], Code}}  
  56.     end;  
  57. initial_state_name(timeout, {_SoFar, Code}) ->  
  58.     io:format("timout when waiting button inputting, clean the input, button again plz~n"),  
  59.     {next_state, initial_state_name, {[], Code}}.  

  60. open(timeout, State) ->  
  61.     do_lock(),  
  62.     {next_state, initial_state_name, State}.  

  63. do_unlock() ->  
  64.     io:format("passwd is right, open the DOOR.~n").  
  65.   
  66. do_lock() ->  
  67.     io:format("over, close the DOOR.~n").  
复制代码

论坛徽章:
27
水瓶座
日期:2014-08-22 21:06:34程序设计版块每日发帖之星
日期:2015-11-25 06:20:0015-16赛季CBA联赛之新疆
日期:2015-12-19 19:05:48IT运维版块每日发帖之星
日期:2015-12-25 06:20:31IT运维版块每日发帖之星
日期:2015-12-25 06:20:31IT运维版块每日发帖之星
日期:2015-12-25 06:20:3315-16赛季CBA联赛之上海
日期:2016-04-15 19:51:31程序设计版块每日发帖之星
日期:2016-04-17 06:23:29程序设计版块每日发帖之星
日期:2016-04-23 06:20:00程序设计版块每日发帖之星
日期:2016-05-26 06:20:00每日论坛发贴之星
日期:2016-05-26 06:20:0015-16赛季CBA联赛之辽宁
日期:2017-02-16 23:59:47
3 [报告]
发表于 2014-11-10 22:53 |只看该作者
function_clause erlang

No matching function clause is found when evaluating a function call.
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP