documentation/graphs/fsm_eoe.dot
author Patrick Bruenn <p.bruenn@beckhoff.com>
Tue, 12 Apr 2016 11:17:36 +0200
branchstable-1.5
changeset 2654 b3f6b3e5ef29
parent 2513 e60c68f33e4f
permissions -rw-r--r--
devices/ccat: revert "limit rx processing to one frame per poll"

revert "limit rx processing to one frame per poll", which caused etherlab
frame timeouts in setups with more than one frame per cycle.
1478
0b19ac5acad2 Redesign of EoE statemachine.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
     1
0b19ac5acad2 Redesign of EoE statemachine.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
     2
/* $Id$ */
0b19ac5acad2 Redesign of EoE statemachine.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
     3
2513
e60c68f33e4f Improved fon specifications in DOT graphs.
Florian Pose <fp@igh-essen.com>
parents: 1478
diff changeset
     4
digraph eoe {
1478
0b19ac5acad2 Redesign of EoE statemachine.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
     5
    node [fontname="Helvetica"]
0b19ac5acad2 Redesign of EoE statemachine.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
     6
    edge [fontname="Helvetica",fontsize=12]
0b19ac5acad2 Redesign of EoE statemachine.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
     7
0b19ac5acad2 Redesign of EoE statemachine.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
     8
    start [shape=point]
0b19ac5acad2 Redesign of EoE statemachine.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
     9
    start -> query
0b19ac5acad2 Redesign of EoE statemachine.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    10
0b19ac5acad2 Redesign of EoE statemachine.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    11
    query [label="Query all Mailboxes"]
0b19ac5acad2 Redesign of EoE statemachine.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    12
    query -> check_read
0b19ac5acad2 Redesign of EoE statemachine.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    13
0b19ac5acad2 Redesign of EoE statemachine.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    14
    check_read [shape=diamond,label="Frames to read?"]
0b19ac5acad2 Redesign of EoE statemachine.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    15
    check_read -> unset_idle_read [label="yes"]
0b19ac5acad2 Redesign of EoE statemachine.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    16
    check_read -> check_idle_read [label="no"]
0b19ac5acad2 Redesign of EoE statemachine.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    17
0b19ac5acad2 Redesign of EoE statemachine.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    18
    unset_idle_read [label="Reset idle flag"]
0b19ac5acad2 Redesign of EoE statemachine.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    19
    unset_idle_read -> read
0b19ac5acad2 Redesign of EoE statemachine.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    20
0b19ac5acad2 Redesign of EoE statemachine.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    21
    read [label="Read next segment"]
0b19ac5acad2 Redesign of EoE statemachine.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    22
    read -> check_read_finished
0b19ac5acad2 Redesign of EoE statemachine.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    23
0b19ac5acad2 Redesign of EoE statemachine.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    24
    check_read_finished [shape=diamond,label="Frame complete?"]
0b19ac5acad2 Redesign of EoE statemachine.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    25
    check_read_finished -> read [label="no"]
0b19ac5acad2 Redesign of EoE statemachine.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    26
    check_read_finished -> check_write [label="yes"]
0b19ac5acad2 Redesign of EoE statemachine.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    27
0b19ac5acad2 Redesign of EoE statemachine.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    28
    check_idle_read [shape=diamond,label="Idle flag set?"]
0b19ac5acad2 Redesign of EoE statemachine.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    29
    check_idle_read -> set_idle_read [label="no"]
0b19ac5acad2 Redesign of EoE statemachine.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    30
    check_idle_read -> sleep_read [label="yes"]
0b19ac5acad2 Redesign of EoE statemachine.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    31
0b19ac5acad2 Redesign of EoE statemachine.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    32
    set_idle_read [label="Set idle flag"]
0b19ac5acad2 Redesign of EoE statemachine.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    33
    set_idle_read -> check_write
0b19ac5acad2 Redesign of EoE statemachine.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    34
0b19ac5acad2 Redesign of EoE statemachine.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    35
    sleep_read [label="Sleep"]
0b19ac5acad2 Redesign of EoE statemachine.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    36
    sleep_read -> check_write
0b19ac5acad2 Redesign of EoE statemachine.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    37
0b19ac5acad2 Redesign of EoE statemachine.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    38
    check_write [shape=diamond,label="Frames to write?"]
0b19ac5acad2 Redesign of EoE statemachine.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    39
    check_write -> unset_idle_write [label="yes"]
0b19ac5acad2 Redesign of EoE statemachine.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    40
    check_write -> check_idle_write [label="no"]
0b19ac5acad2 Redesign of EoE statemachine.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    41
0b19ac5acad2 Redesign of EoE statemachine.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    42
    unset_idle_write [label="Reset idle flag"]
0b19ac5acad2 Redesign of EoE statemachine.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    43
    unset_idle_write -> write
0b19ac5acad2 Redesign of EoE statemachine.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    44
0b19ac5acad2 Redesign of EoE statemachine.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    45
    write [label="Write next segment"]
0b19ac5acad2 Redesign of EoE statemachine.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    46
    write -> check_write_finished
0b19ac5acad2 Redesign of EoE statemachine.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    47
0b19ac5acad2 Redesign of EoE statemachine.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    48
    check_write_finished [shape=diamond,label="Frame complete?"]
0b19ac5acad2 Redesign of EoE statemachine.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    49
    check_write_finished -> check_read_remaining [label="yes"]
0b19ac5acad2 Redesign of EoE statemachine.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    50
    check_write_finished -> write [label="no"]
0b19ac5acad2 Redesign of EoE statemachine.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    51
0b19ac5acad2 Redesign of EoE statemachine.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    52
    check_read_remaining [shape=diamond,label="Remaining segments to read?"]
0b19ac5acad2 Redesign of EoE statemachine.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    53
    check_read_remaining -> query [label="no"]
0b19ac5acad2 Redesign of EoE statemachine.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    54
    check_read_remaining -> read [label="yes"]
0b19ac5acad2 Redesign of EoE statemachine.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    55
0b19ac5acad2 Redesign of EoE statemachine.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    56
    check_idle_write [shape=diamond,label="Idle flag set?"]
0b19ac5acad2 Redesign of EoE statemachine.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    57
    check_idle_write -> set_idle_write [label="no"]
0b19ac5acad2 Redesign of EoE statemachine.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    58
    check_idle_write -> sleep_write [label="yes"]
0b19ac5acad2 Redesign of EoE statemachine.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    59
0b19ac5acad2 Redesign of EoE statemachine.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    60
    set_idle_write [label="Set idle flag"]
0b19ac5acad2 Redesign of EoE statemachine.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    61
    set_idle_write -> check_read_remaining
0b19ac5acad2 Redesign of EoE statemachine.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    62
0b19ac5acad2 Redesign of EoE statemachine.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    63
    sleep_write [label="Sleep"]
0b19ac5acad2 Redesign of EoE statemachine.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    64
    sleep_write -> query
0b19ac5acad2 Redesign of EoE statemachine.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    65
0b19ac5acad2 Redesign of EoE statemachine.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    66
    /*{rank=same; check_read; check_idle_read}
0b19ac5acad2 Redesign of EoE statemachine.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    67
    {rank=same; unset_idle_read; set_idle_read; sleep_read}
0b19ac5acad2 Redesign of EoE statemachine.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    68
    {rank=same; check_write; check_idle_write}
0b19ac5acad2 Redesign of EoE statemachine.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    69
    {rank=same; unset_idle_write; set_idle_write; sleep_write}*/
0b19ac5acad2 Redesign of EoE statemachine.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    70
}