documentation/graphs/fsm_slave_conf.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.

/* $Id$ */

digraph slaveconf {
    node [fontname="Helvetica"]
    edge [fontname="Helvetica", fontsize="12"]

    start
    start -> enter_init [weight=10]

    enter_init [shape=point, label=""]
    enter_init -> init [weight=10]

    reconfigure [shape=point, label=""]
    reconfigure -> enter_init [label="Config\ndetached"]

    init [style="bold"]
    init -> enter_clear_sync [label="No FMMUs"]
    init -> clear_fmmus [weight=10]

    clear_fmmus
    clear_fmmus -> enter_clear_sync [weight=10]

    enter_clear_sync [shape=point, label=""]
    enter_clear_sync -> enter_dc_clear_assign [label="No SMs"]
    enter_clear_sync -> clear_sync [weight=10]

    clear_sync
    clear_sync -> enter_dc_clear_assign [weight=10]

    enter_dc_clear_assign [shape=point, label=""]
    enter_dc_clear_assign -> enter_mbox_sync [label="No DC\nsupport"]
    enter_dc_clear_assign -> dc_clear_assign [weight=10]

    dc_clear_assign
    dc_clear_assign -> dc_read_offset [weight=10]

    dc_read_offset
    dc_read_offset -> dc_write_offset [weight=10]

    dc_write_offset
    dc_write_offset -> enter_mbox_sync [weight=10]

    enter_mbox_sync [shape=point, label=""]
    enter_mbox_sync -> end [label="INIT\nrequested"]
    enter_mbox_sync -> enter_boot_preop [label="No mailboxes"]
    enter_mbox_sync -> mbox_sync [weight=10]

    mbox_sync
    mbox_sync -> enter_boot_preop [weight=10]

    enter_boot_preop [shape=point, label=""]
    enter_boot_preop -> boot_preop [weight=10]

    boot_preop [style="bold"]
    boot_preop -> end [label="PREOP\nor BOOT\nrequested"]
    boot_preop -> enter_sdo_conf [weight=10]

    enter_sdo_conf [shape=point, label=""]
    enter_sdo_conf -> enter_pdo_sync [label="No config\nattached"]
    enter_sdo_conf -> enter_pdo_conf [label="No SDOs\nconfigured"]
    enter_sdo_conf -> sdo_conf [weight=10]

    sdo_conf
    sdo_conf -> reconfigure
    sdo_conf -> enter_pdo_conf [weight=10]

    enter_pdo_conf [shape=point, label=""]
    enter_pdo_conf -> pdo_conf [weight=10]

    pdo_conf
    pdo_conf -> reconfigure
    pdo_conf -> enter_pdo_sync [weight=10]

    enter_pdo_sync [shape=point, label=""]
    enter_pdo_sync -> enter_fmmu [label="No PDO SMs"]
    enter_pdo_sync -> pdo_sync [weight=10]

    pdo_sync
    pdo_sync -> enter_fmmu [weight=10]

    enter_fmmu [shape=point,label=""]
    enter_fmmu -> enter_safeop [label="No config\nattached"]
    enter_fmmu -> enter_dc_cycle [label="No FMMUs\nconfigured"]
    enter_fmmu -> fmmu [weight=10]

    fmmu
    fmmu -> enter_dc_cycle [weight=10]

    enter_dc_cycle [shape=point,label=""]
    enter_dc_cycle -> reconfigure
    enter_dc_cycle -> dc_cycle [weight=10]
    enter_dc_cycle -> enter_safeop [label="DC not\nconfigured"]

    dc_cycle
    dc_cycle -> reconfigure
    dc_cycle -> dc_start [weight=10]

    dc_start
    dc_start -> reconfigure
    dc_start -> dc_assign [weight=10]

    dc_assign
    dc_assign -> enter_safeop [weight=10]

    enter_safeop [shape=point,label=""]
    enter_safeop -> safeop [weight=10]

    safeop [style="bold"]
    safeop -> end [label="SAFEOP\nrequested"]
    safeop -> op [weight=10]

    op [style="bold"]
    op -> end

    end
}