From 426795c6beccda85f90e752cf77bcbd3181127b5 Mon Sep 17 00:00:00 2001
From: Florian Pose <fp@igh-essen.com>
Date: Wed, 12 Sep 2007 13:20:59 +0000
Subject: [PATCH] Added FSM graph for master state machine.

---
 documentation/graphs/Makefile       |  2 +-
 documentation/graphs/fsm_master.dot | 79 +++++++++++++++++++++++++++++
 2 files changed, 80 insertions(+), 1 deletion(-)
 create mode 100644 documentation/graphs/fsm_master.dot

diff --git a/documentation/graphs/Makefile b/documentation/graphs/Makefile
index 9e6a4df6..b58acc10 100644
--- a/documentation/graphs/Makefile
+++ b/documentation/graphs/Makefile
@@ -4,7 +4,7 @@
 #
 #-----------------------------------------------------------------------------
 
-GRAPHS := fsm_slave_conf.ps fsm_pdo_mapping.ps
+GRAPHS := fsm_slave_conf.ps fsm_pdo_mapping.ps fsm_master.ps
 
 all: $(GRAPHS)
 
diff --git a/documentation/graphs/fsm_master.dot b/documentation/graphs/fsm_master.dot
new file mode 100644
index 00000000..ebdc4796
--- /dev/null
+++ b/documentation/graphs/fsm_master.dot
@@ -0,0 +1,79 @@
+digraph master {
+    size="7,9"
+    center=1
+	ratio=fill
+
+    action_process_eeprom [shape=point,label=""]
+    action_process_sdo [shape=point,label=""]
+    action_configure [shape=point,label=""]
+    action_next_slave_state [shape=point,label=""]
+    action_process_states [shape=point,label=""]
+    action_addresses [shape=point,label=""]
+
+    start -> broadcast [weight=10]
+
+    //broadcast -> error
+    broadcast -> end
+    broadcast -> clear_addresses
+    broadcast -> read_states [weight=10]
+
+    action_process_eeprom -> write_eeprom
+
+    action_process_sdo -> sdo_request
+
+    action_configure -> configure_slave
+
+    action_next_slave_state -> read_states
+    action_next_slave_state -> validate_vendor
+    action_next_slave_state -> action_process_states
+
+    action_process_states -> action_configure
+    action_process_states -> action_process_sdo
+    action_process_states -> action_process_eeprom
+    action_process_states -> sdodict
+    action_process_states -> end
+
+    //read_states -> error
+    read_states -> action_next_slave_state
+    read_states -> acknowledge
+
+    //acknowledge -> error
+    acknowledge -> action_next_slave_state
+
+    //validate_vendor -> error
+    validate_vendor -> validate_product
+
+    action_addresses -> end
+    action_addresses -> rewrite_addresses
+
+    //validate_product -> error
+    validate_product -> validate_vendor
+    validate_product -> action_addresses
+
+    //rewrite_addresses -> error
+    rewrite_addresses -> end
+    rewrite_addresses -> action_addresses
+
+    //clear_addresses -> error
+    clear_addresses -> scan_slaves
+
+    scan_slaves -> scan_slaves
+    scan_slaves -> end
+
+    configure_slave -> action_configure
+    configure_slave -> end
+
+    //write_eeprom -> error
+    write_eeprom -> end
+
+    //sdodict -> error
+    sdodict -> end
+
+    //sdo_request -> error
+    sdo_request -> action_process_sdo
+    sdo_request -> end
+
+    //error -> start
+
+    //end -> start
+}
-- 
GitLab