documentation/graphs/fsm_slave_conf.dot
author Florian Pose <fp@igh-essen.com>
Thu, 23 Apr 2009 14:45:07 +0000
changeset 1413 44c2b7c0ae1a
parent 1412 8f7bbbd3b7ac
child 1428 a737e8885437
permissions -rw-r--r--
Userspace library implementation of DC functions.

/* $Id$ */

digraph slaveconf {
    size="3,5"

    start [fontname="Helvetica"]
    start -> enter_init [weight=10]

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

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

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

    clear_fmmus [fontname="Helvetica"]
    clear_fmmus -> enter_clear_sync [weight=10]

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

    clear_sync [fontname="Helvetica"]
    clear_sync -> enter_dc_clear_assign [weight=10]

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

    dc_clear_assign [fontname="Helvetica"]
    dc_clear_assign -> dc_read_offset [weight=10]

    dc_read_offset [fontname="Helvetica"]
    dc_read_offset -> dc_write_offset [weight=10]

    dc_write_offset [fontname="Helvetica"]
    dc_write_offset -> enter_mbox_sync [weight=10]

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

    mbox_sync [fontname="Helvetica"]
    mbox_sync -> enter_boot_preop [weight=10]

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

    boot_preop [fontname="Helvetica", style="bold"]
    boot_preop -> end [fontname="Helvetica", label="PREOP\nor BOOT\nrequested"]
    boot_preop -> enter_safeop [fontname="Helvetica", label="No slave\nconfig attached"]
    boot_preop -> enter_sdo_conf [weight=10]

    enter_sdo_conf [shape=point, label=""]
    enter_sdo_conf -> enter_pdo_conf [fontname="Helvetica", label="No SDOs\nconfigured"]
    enter_sdo_conf -> sdo_conf [weight=10]

    sdo_conf [fontname="Helvetica"]
    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 [fontname="Helvetica"]
    pdo_conf -> reconfigure
    pdo_conf -> enter_pdo_sync [weight=10]

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

    pdo_sync [fontname="Helvetica"]
    pdo_sync -> enter_fmmu [weight=10]

    enter_fmmu [shape=point,label=""]
    enter_fmmu -> reconfigure
    enter_fmmu -> enter_dc_cycle [fontname="Helvetica", label="No FMMUs\nconfigured"]
    enter_fmmu -> fmmu [weight=10]

    fmmu [fontname="Helvetica"]
    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 [fontname="Helvetica", label="DC not\nconfigured"]

    dc_cycle [fontname="Helvetica"]
    dc_cycle -> reconfigure
    dc_cycle -> dc_start [weight=10]

    dc_start [fontname="Helvetica"]
    dc_start -> reconfigure
    dc_start -> dc_assign [weight=10]

    dc_assign [fontname="Helvetica"]
    dc_assign -> enter_safeop [weight=10]

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

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

    op [fontname="Helvetica", style="bold"]
    op -> end

    end [fontname="Helvetica"]
}