robot
最新文章(10)
Mqskit 和其它相關工具
CPython 的 GC 二、三事
寫 Mecurial Extension 是件快樂的事!
Mozilla 台灣辨公室徵人啟事
關於 Apple 的兩項專利
core dump 之前的 frame
怎麼發出 beep 聲?
先承認你要找的是奴才吧!
程式碼要清的多乾淨?
FreeBSD 的 Thread-Local Storage 實作
首頁
新編
最新留言
Entries RSS
重要關鍵字(10)
coding (122)
Python (93)
FreeBSD (71)
WEB (61)
URL (48)
hardware (46)
javascript (36)
Linux (34)
blog (30)
C++ (16)
所有關鍵字
新增 URL
用 Python 描述 FSM
by thinker
2 Columns
關鍵字:
Python
coding
昨日在 #tossug 問起 jserv 什麼時侯要 release 新的東西, jserv 回答說「沒空寫文件」,並稱要用 dot (linkname:graphviz http://www.graphviz.org/ ) 畫很多 finite state machine 的圖。我想一想,本來要丟一個我以前寫的 script 給他,比 dot 更適於描述 FSM ,後來想到,何不使用 $Python$ 描述就好了? 今天花了點時間,寫了一個簡單的工具,能將一段 function 轉成 dot 格式的 FSM diagram 。 {{{#!python def FSM(ready, running, sleep, dead): state = ready while True: state() if state == ready: if cond('scheduled'): state = running pass pass elif state == running: if cond('I/O'): state = sleep elif cond('timeout'): state = ready elif cond('exit'): break pass elif state == sleep: if cond('I/O completed'): state = ready pass pass pass dead() pass }}} 執行下面指令 {{{ $$ ./draw_FSM.py FSM.py > FSM.dot $$ dot -Tjpg FSM.dot -o FSM.jpg }}} 將 FSM.py (前面的 $Python$ code) 轉成下面的圖形 [attach:FSM.jpg] 未來,也許有機會能從現有的 source code ,直接產生 FSM ,而不需另外描述。 draw_FSM.py 這支程式,可在 PyAna 的 repository 裡找到。 * Repository (Merchurial): http://hg.assembla.com/PyAna
最後更新時間: 2008-07-01 00:28:13 CST |
引用
查詢:
COMMENTS: