mirror of
https://gitlab.com/etherlab.org/ethercat.git
synced 2026-02-06 11:51:45 +08:00
Improved master state machine.
This commit is contained in:
12
TODO
12
TODO
@@ -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:
|
||||
|
||||
@@ -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
Reference in New Issue
Block a user