.model c_st_a
.inputs tick token_i req_i
.outputs grant_i
.state graph
s0 tick s0
s0 token_i s1
s1 tick s0
s1 req_i s2
s2 grant_i s3
s3 tick s0
.marking {s0}
.end
All theory about Team Automata can be found in their web site.
Contact:
There is no package ready to download yet, but CVS can be used to download the sorce files.
>cvs -z3 -d:pserver:anonymous@synchroteam.cvs.sourceforge.net:/cvsroot/synchroteam co -P synchroteam
The comand "make" will build all layers into lib/ and all executables into bin/
synchroteam/src> make
...
synchroteam/lib> ls
libautomata.a libcomposer.a libinput.a liboutput.a
synchroteam/bin> ls
auto2dot synchroteam
>synchroteam automata synctype
>ls
A_B.out
A_B.dot
>auto2dot automata
>ls
A.dot
see "man dot"
>dot FILENAME.dot -Tpng -oFILENAME.png
A complete example is shown, with comands and graphs generated by synchroteam.
First automata:
.model c_st_a
.inputs tick token_i req_i
.outputs grant_i
.state graph
s0 tick s0
s0 token_i s1
s1 tick s0
s1 req_i s2
s2 grant_i s3
s3 tick s0
.marking {s0}
.end
>bin/auto2dot c_st_a
>dot c_st_a.dot -Tpng -o c_st_a.png
Second automata:
.model c_st_b
.inputs tick token_i
.outputs token_ii
.state graph
s0 tick s0
s0 token_i s1
s1 tick s2
s2 token_ii s0
.marking {s0}
.end
>bin/auto2dot c_st_b
>dot c_st_b.dot -Tpng -o c_st_b.png
Synchronization types:
token_i:ai
tick:ai
token_ii:ai
req_i:ai
grant_i:ai
synchroteam synchronize both automatas using the synctype rules and generates .out file ( can be used for other synchronizations) and .dot file ( for graphical representation )
>bin/synchroteam c_st_a c_st_b synctype_cst_ab
>ls
c_st_a_c_st_b.out c_st_a_c_st_b.dot
dot can generate outputs in many formats as png, svg, gif, png, ps, ... see "man dot"
.model c_st_a_c_st_b
.inputs req_i tick token_i
.outputs grant_i token_ii
.state graph
s0_s0 tick s0_s0
s0_s0 token_i s1_s1
s0_s2 token_ii s0_s0
s1_s1 req_i s2_s1
s1_s1 tick s0_s2
s2_s1 grant_i s3_s1
s3_s1 tick s0_s2
.marking {s0_s0}
.end
>dot c_st_a_c_st_b.dot -Tpng -oc_st_a_c_st_b.png