Improved master state machine.

This commit is contained in:
Florian Pose
2008-04-25 14:07:38 +00:00
parent 0b9015848b
commit ff5dd7fe1c
3 changed files with 246 additions and 253 deletions

12
TODO
View File

@@ -20,10 +20,11 @@ Version 1.4.0:
portability.
* Remove ecdb.h and let lsec output PDO information 'cut-and-pastable' for
applications.
* Scanning of Sdo dictionary / writing EEPROM in OPERATION state.
* Remove the end state of the master state machine.
* SDO write access in sysfs.
* Update documentation.
* Supply new ec_master_state_t.
* Scanning of Sdo dictionary / writing EEPROM in OPERATION state.
* Adapt remaining examples.
* READMEs for examples.
* Separate Pdo and Pdo entry classes.
@@ -31,12 +32,11 @@ Version 1.4.0:
* Wait for bus scanning, even when link is not up at ecrt_request_master().
* Implement ecrt_slave_config_state().
* Add something like lsec -n to show numeric vendor IDs.
* Remove the end state of the master state machine.
* Check the position of the acknowledge state.
* Remove the xmldev files.
* Separate CoE debugging.
* Make ecrt_master_slave_config() return no error when slave is not present
or invalid.
* Evaluate EEPROM contents after writing.
Future issues:
@@ -45,7 +45,6 @@ Future issues:
kernel threads to user space daemon with a TCP interface replacing the
cdev).
* Mailbox gateway.
* Slave-to-slave communication.
* Redundancy with 2 network adapters.
* Interface/buffers for asynchronous domain IO.
@@ -54,14 +53,9 @@ Smaller issues:
* Evaluate SII Size field (0x003E) to determine maximum SII memory size.
* Unite fsm_pdo_mapping, fsm_pdo_config and fsm_coe_map.
* Clear sync managers in INIT.
* Simplify FSMs with <state>_enter() functions.
* Read out CRC counters.
* Optimize alignment of process data.
* Evaluate EEPROM contents after writing.
* Configure slave ports to automatically open on link detection.
* Interrupt master state machines state scan for other jobs.
* Master state machine, slave configuration: Do not check every slave on
a cycle.
* Only execute one EoE handler per EoE cycle.
Less important issues:

View File

@@ -6,62 +6,64 @@ digraph master {
center=1
ratio=fill
action_process_sii [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=""]
start [fontname="Helvetica"]
start -> broadcast [weight=10]
//broadcast -> error
broadcast [fontname="Helvetica"]
broadcast -> end
broadcast -> clear_addresses
broadcast -> read_states [weight=10]
broadcast -> read_state [weight=10]
action_process_sii [shape=point,label=""]
action_process_sii -> write_sii
action_process_sdo [shape=point,label=""]
action_process_sdo -> sdo_request
action_configure -> configure_slave
action_idle [shape=point,label=""]
action_idle -> action_process_sdo
action_idle -> sdo_dictionary
action_idle -> action_process_sii
action_idle -> end
action_process_states -> action_configure
action_process_states -> action_process_sdo
action_process_states -> sdo_dictionary
action_process_states -> action_process_sii
action_process_states -> end
action_next_slave_state [shape=point,label=""]
action_next_slave_state -> read_state
action_next_slave_state -> action_idle [weight=10]
action_configure [shape=point,label=""]
action_configure -> configure_slave [weight=10]
action_configure -> action_next_slave_state
action_next_slave_state -> read_states
action_next_slave_state -> action_process_states
action_acknowledge [shape=point,label=""]
action_acknowledge -> acknowledge [weight=10]
action_acknowledge -> action_configure
action_acknowledge -> action_next_slave_state
//read_states -> error
read_states -> action_next_slave_state
read_states -> acknowledge
read_state [fontname="Helvetica"]
read_state -> action_acknowledge [weight=10]
//acknowledge -> error
acknowledge -> action_next_slave_state
acknowledge [fontname="Helvetica"]
acknowledge -> action_configure [weight=10]
//clear_addresses -> error
clear_addresses -> scan_slaves
clear_addresses [fontname="Helvetica"]
clear_addresses -> scan_slave [weight=10]
scan_slaves -> scan_slaves
scan_slaves -> end
scan_slave [fontname="Helvetica"]
scan_slave -> end
configure_slave -> action_configure
configure_slave -> end
configure_slave [fontname="Helvetica"]
configure_slave -> action_next_slave_state [weight=10]
//write_sii -> error
write_sii [fontname="Helvetica"]
write_sii -> action_process_sii
write_sii -> end
//sdo_dictionary -> error
sdo_dictionary [fontname="Helvetica"]
sdo_dictionary -> end
//sdo_request -> error
sdo_request [fontname="Helvetica"]
sdo_request -> action_process_sdo
sdo_request -> end
//error -> start
//end -> start
end [fontname="Helvetica"]
}

File diff suppressed because it is too large Load Diff