documentation/graphs/fsm_master.dot
author Florian Pose <fp@igh-essen.com>
Mon, 24 Sep 2007 08:56:50 +0000
changeset 755 178353fc47e5
parent 718 80df6930e7e6
child 803 c9e147567924
permissions -rw-r--r--
SII writing workaround for some slaves, that don't respond correctly;
improved SII code.
718
80df6930e7e6 Added FSM graph for master state machine.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
     1
digraph master {
80df6930e7e6 Added FSM graph for master state machine.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
     2
    size="7,9"
80df6930e7e6 Added FSM graph for master state machine.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
     3
    center=1
80df6930e7e6 Added FSM graph for master state machine.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
     4
	ratio=fill
80df6930e7e6 Added FSM graph for master state machine.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
     5
80df6930e7e6 Added FSM graph for master state machine.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
     6
    action_process_eeprom [shape=point,label=""]
80df6930e7e6 Added FSM graph for master state machine.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
     7
    action_process_sdo [shape=point,label=""]
80df6930e7e6 Added FSM graph for master state machine.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
     8
    action_configure [shape=point,label=""]
80df6930e7e6 Added FSM graph for master state machine.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
     9
    action_next_slave_state [shape=point,label=""]
80df6930e7e6 Added FSM graph for master state machine.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    10
    action_process_states [shape=point,label=""]
80df6930e7e6 Added FSM graph for master state machine.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    11
    action_addresses [shape=point,label=""]
80df6930e7e6 Added FSM graph for master state machine.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    12
80df6930e7e6 Added FSM graph for master state machine.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    13
    start -> broadcast [weight=10]
80df6930e7e6 Added FSM graph for master state machine.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    14
80df6930e7e6 Added FSM graph for master state machine.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    15
    //broadcast -> error
80df6930e7e6 Added FSM graph for master state machine.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    16
    broadcast -> end
80df6930e7e6 Added FSM graph for master state machine.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    17
    broadcast -> clear_addresses
80df6930e7e6 Added FSM graph for master state machine.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    18
    broadcast -> read_states [weight=10]
80df6930e7e6 Added FSM graph for master state machine.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    19
80df6930e7e6 Added FSM graph for master state machine.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    20
    action_process_eeprom -> write_eeprom
80df6930e7e6 Added FSM graph for master state machine.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    21
80df6930e7e6 Added FSM graph for master state machine.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    22
    action_process_sdo -> sdo_request
80df6930e7e6 Added FSM graph for master state machine.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    23
80df6930e7e6 Added FSM graph for master state machine.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    24
    action_configure -> configure_slave
80df6930e7e6 Added FSM graph for master state machine.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    25
80df6930e7e6 Added FSM graph for master state machine.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    26
    action_next_slave_state -> read_states
80df6930e7e6 Added FSM graph for master state machine.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    27
    action_next_slave_state -> validate_vendor
80df6930e7e6 Added FSM graph for master state machine.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    28
    action_next_slave_state -> action_process_states
80df6930e7e6 Added FSM graph for master state machine.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    29
80df6930e7e6 Added FSM graph for master state machine.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    30
    action_process_states -> action_configure
80df6930e7e6 Added FSM graph for master state machine.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    31
    action_process_states -> action_process_sdo
80df6930e7e6 Added FSM graph for master state machine.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    32
    action_process_states -> action_process_eeprom
80df6930e7e6 Added FSM graph for master state machine.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    33
    action_process_states -> sdodict
80df6930e7e6 Added FSM graph for master state machine.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    34
    action_process_states -> end
80df6930e7e6 Added FSM graph for master state machine.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    35
80df6930e7e6 Added FSM graph for master state machine.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    36
    //read_states -> error
80df6930e7e6 Added FSM graph for master state machine.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    37
    read_states -> action_next_slave_state
80df6930e7e6 Added FSM graph for master state machine.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    38
    read_states -> acknowledge
80df6930e7e6 Added FSM graph for master state machine.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    39
80df6930e7e6 Added FSM graph for master state machine.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    40
    //acknowledge -> error
80df6930e7e6 Added FSM graph for master state machine.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    41
    acknowledge -> action_next_slave_state
80df6930e7e6 Added FSM graph for master state machine.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    42
80df6930e7e6 Added FSM graph for master state machine.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    43
    //validate_vendor -> error
80df6930e7e6 Added FSM graph for master state machine.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    44
    validate_vendor -> validate_product
80df6930e7e6 Added FSM graph for master state machine.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    45
80df6930e7e6 Added FSM graph for master state machine.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    46
    action_addresses -> end
80df6930e7e6 Added FSM graph for master state machine.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    47
    action_addresses -> rewrite_addresses
80df6930e7e6 Added FSM graph for master state machine.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    48
80df6930e7e6 Added FSM graph for master state machine.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    49
    //validate_product -> error
80df6930e7e6 Added FSM graph for master state machine.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    50
    validate_product -> validate_vendor
80df6930e7e6 Added FSM graph for master state machine.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    51
    validate_product -> action_addresses
80df6930e7e6 Added FSM graph for master state machine.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    52
80df6930e7e6 Added FSM graph for master state machine.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    53
    //rewrite_addresses -> error
80df6930e7e6 Added FSM graph for master state machine.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    54
    rewrite_addresses -> end
80df6930e7e6 Added FSM graph for master state machine.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    55
    rewrite_addresses -> action_addresses
80df6930e7e6 Added FSM graph for master state machine.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    56
80df6930e7e6 Added FSM graph for master state machine.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    57
    //clear_addresses -> error
80df6930e7e6 Added FSM graph for master state machine.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    58
    clear_addresses -> scan_slaves
80df6930e7e6 Added FSM graph for master state machine.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    59
80df6930e7e6 Added FSM graph for master state machine.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    60
    scan_slaves -> scan_slaves
80df6930e7e6 Added FSM graph for master state machine.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    61
    scan_slaves -> end
80df6930e7e6 Added FSM graph for master state machine.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    62
80df6930e7e6 Added FSM graph for master state machine.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    63
    configure_slave -> action_configure
80df6930e7e6 Added FSM graph for master state machine.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    64
    configure_slave -> end
80df6930e7e6 Added FSM graph for master state machine.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    65
80df6930e7e6 Added FSM graph for master state machine.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    66
    //write_eeprom -> error
80df6930e7e6 Added FSM graph for master state machine.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    67
    write_eeprom -> end
80df6930e7e6 Added FSM graph for master state machine.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    68
80df6930e7e6 Added FSM graph for master state machine.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    69
    //sdodict -> error
80df6930e7e6 Added FSM graph for master state machine.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    70
    sdodict -> end
80df6930e7e6 Added FSM graph for master state machine.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    71
80df6930e7e6 Added FSM graph for master state machine.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    72
    //sdo_request -> error
80df6930e7e6 Added FSM graph for master state machine.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    73
    sdo_request -> action_process_sdo
80df6930e7e6 Added FSM graph for master state machine.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    74
    sdo_request -> end
80df6930e7e6 Added FSM graph for master state machine.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    75
80df6930e7e6 Added FSM graph for master state machine.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    76
    //error -> start
80df6930e7e6 Added FSM graph for master state machine.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    77
80df6930e7e6 Added FSM graph for master state machine.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    78
    //end -> start
80df6930e7e6 Added FSM graph for master state machine.
Florian Pose <fp@igh-essen.com>
parents:
diff changeset
    79
}