Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
E
etherlabmaster
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Iterations
Wiki
Jira
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Locked files
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package Registry
Container Registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Code review analytics
Issue analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
ICS Control System Infrastructure
etherlabmaster
Commits
23b72b8c
Commit
23b72b8c
authored
16 years ago
by
Florian Pose
Browse files
Options
Downloads
Patches
Plain Diff
Improved master state machine.
parent
936dc136
No related branches found
No related tags found
No related merge requests found
Changes
3
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
TODO
+3
-9
3 additions, 9 deletions
TODO
documentation/graphs/fsm_master.dot
+35
-33
35 additions, 33 deletions
documentation/graphs/fsm_master.dot
master/fsm_master.c
+208
-211
208 additions, 211 deletions
master/fsm_master.c
with
246 additions
and
253 deletions
TODO
+
3
−
9
View file @
23b72b8c
...
...
@@ -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:
...
...
This diff is collapsed.
Click to expand it.
documentation/graphs/fsm_master.dot
+
35
−
33
View file @
23b72b8c
...
...
@@ -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_state
s
[
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_slave
s
clear_addresses
[
fontname
=
"Helvetica"
]
clear_addresses
->
scan_slave
[
weight
=
10
]
scan_slave
s
->
scan_slaves
scan_slave
s
->
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"
]
}
This diff is collapsed.
Click to expand it.
master/fsm_master.c
+
208
−
211
View file @
23b72b8c
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment