]> rtime.felk.cvut.cz Git - eurobot/public.git/blob - src/robofsm/demo.dot
robofsm: Add files with statecharts
[eurobot/public.git] / src / robofsm / demo.dot
1 digraph statecharts {
2   ratio = 1.5;
3   subgraph asynchronous_state_machine {
4     init [peripheries=2]
5   }
6   subgraph demo {
7     init [peripheries=2]
8     competing [label=<competing>]
9     competing -> survey [style = dashed]
10     subgraph cluster_competing {
11       label = "competing"
12       survey [peripheries=2]
13       approach_target [label=<approach_target>]
14       approach_target -> recognize_init [style = dashed]
15       subgraph cluster_approach_target {
16         label = "approach_target"
17         recognize_init [peripheries=2]
18         get_target_back [label=<get_target_back>]
19         get_target_load [label=<get_target_load>]
20         get_target_touch [label=<get_target_touch>]
21         get_target_turn [label=<get_target_turn>]
22         recognize [label=<recognize>]
23         recognize_init [label=<recognize_init>]
24       }
25       go_home [label=<go_home>]
26       move_around [label=<move_around>]
27       survey [label=<survey>]
28     }
29     init [label=<init>]
30     wait_for_start [label=<wait_for_start>]
31   }
32   init -> wait_for_start [label = "evEntry"]
33   wait_for_start -> competing [label = "evStart"]
34   survey -> move_around [label = "evTimer"]
35   survey -> move_around [label = "evMotionError"]
36   survey -> approach_target [label = "evTargetDetected"]
37   approach_target -> go_home [label = "evReturn"]
38   approach_target -> move_around [label = "evReturn"]
39   approach_target -> approach_target [label = "evMotionError"]
40   approach_target -> move_around [label = "evMotionError"]
41   move_around -> survey [label = "evMotionDone"]
42   move_around -> survey [label = "evMotionError"]
43   go_home -> go_home [label = "evTimer"]
44   recognize_init -> recognize [label = "evRunSubFSM"]
45   recognize -> get_target_turn [label = "evCameraDone"]
46   get_target_turn -> get_target_load [label = "evMotionDone"]
47   get_target_turn -> get_target_touch [label = "evMotionDone"]
48   get_target_touch -> get_target_turn [label = "evMotionDone"]
49   get_target_load -> get_target_back [label = "evTimer"]
50 }