documentation/graphs/fsm_slave_conf.dot
author Knud Baastrup <kba@deif.com>
Tue, 14 Apr 2015 10:12:55 -0400
changeset 2625 e25af8bd3957
parent 2589 2b9c78543663
permissions -rw-r--r--
Eoe mac address now derived from unique mac.
The EoE MAC address is now derived from the NIC part of the first global
unique MAC address of the linked list of available network interfaces or
otherwise the MAC address used by the EtherCAT master. The EoE MAC address
will get the format 02:NIC:NIC:NIC:RP:RP where NIC comes from the unique MAC
address (if available) and RP is the ring position of the EoE slave.

/* $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
}