├── CMakeLists.txt ├── Doxyfile ├── README.md ├── doc ├── html │ ├── annotated.html │ ├── bc_s.png │ ├── bdwn.png │ ├── classes.html │ ├── closed.png │ ├── doxygen.css │ ├── doxygen.png │ ├── dynsections.js │ ├── ebox_8c.html │ ├── eepromtool_8c.html │ ├── ethercatbase_8c.html │ ├── ethercatbase_8h.html │ ├── ethercatcoe_8c.html │ ├── ethercatcoe_8h.html │ ├── ethercatconfig_8c.html │ ├── ethercatconfig_8h.html │ ├── ethercatconfiglist_8h.html │ ├── ethercatdc_8c.html │ ├── ethercatdc_8h.html │ ├── ethercatfoe_8c.html │ ├── ethercatfoe_8h.html │ ├── ethercatmain_8c.html │ ├── ethercatmain_8h.html │ ├── ethercatprint_8c.html │ ├── ethercatprint_8h.html │ ├── ethercatsoe_8c.html │ ├── ethercatsoe_8h.html │ ├── ethercattype_8h.html │ ├── files.html │ ├── ftv2blank.png │ ├── ftv2cl.png │ ├── ftv2doc.png │ ├── ftv2folderclosed.png │ ├── ftv2folderopen.png │ ├── ftv2lastnode.png │ ├── ftv2link.png │ ├── ftv2mlastnode.png │ ├── ftv2mnode.png │ ├── ftv2mo.png │ ├── ftv2node.png │ ├── ftv2ns.png │ ├── ftv2plastnode.png │ ├── ftv2pnode.png │ ├── ftv2splitbar.png │ ├── ftv2vertline.png │ ├── functions.html │ ├── functions_0x62.html │ ├── functions_0x63.html │ ├── functions_0x64.html │ ├── functions_0x65.html │ ├── functions_0x66.html │ ├── functions_0x67.html │ ├── functions_0x68.html │ ├── functions_0x69.html │ ├── functions_0x6c.html │ ├── functions_0x6d.html │ ├── functions_0x6e.html │ ├── functions_0x6f.html │ ├── functions_0x70.html │ ├── functions_0x72.html │ ├── functions_0x73.html │ ├── functions_0x74.html │ ├── functions_0x75.html │ ├── functions_0x76.html │ ├── functions_0x77.html │ ├── functions_vars.html │ ├── functions_vars_0x62.html │ ├── functions_vars_0x63.html │ ├── functions_vars_0x64.html │ ├── functions_vars_0x65.html │ ├── functions_vars_0x66.html │ ├── functions_vars_0x67.html │ ├── functions_vars_0x68.html │ ├── functions_vars_0x69.html │ ├── functions_vars_0x6c.html │ ├── functions_vars_0x6d.html │ ├── functions_vars_0x6e.html │ ├── functions_vars_0x6f.html │ ├── functions_vars_0x70.html │ ├── functions_vars_0x72.html │ ├── functions_vars_0x73.html │ ├── functions_vars_0x74.html │ ├── functions_vars_0x75.html │ ├── functions_vars_0x76.html │ ├── functions_vars_0x77.html │ ├── globals.html │ ├── globals_0x62.html │ ├── globals_0x63.html │ ├── globals_0x64.html │ ├── globals_0x65.html │ ├── globals_0x66.html │ ├── globals_0x67.html │ ├── globals_0x68.html │ ├── globals_0x69.html │ ├── globals_0x6c.html │ ├── globals_0x6d.html │ ├── globals_0x6e.html │ ├── globals_0x6f.html │ ├── globals_0x70.html │ ├── globals_0x72.html │ ├── globals_0x73.html │ ├── globals_0x74.html │ ├── globals_0x75.html │ ├── globals_0x77.html │ ├── globals_defs.html │ ├── globals_enum.html │ ├── globals_eval.html │ ├── globals_func.html │ ├── globals_func_0x63.html │ ├── globals_func_0x64.html │ ├── globals_func_0x65.html │ ├── globals_func_0x69.html │ ├── globals_func_0x6d.html │ ├── globals_func_0x6f.html │ ├── globals_func_0x72.html │ ├── globals_func_0x73.html │ ├── globals_type.html │ ├── globals_vars.html │ ├── index.html │ ├── jquery.js │ ├── memory_layout.png │ ├── nav_f.png │ ├── nav_g.png │ ├── nav_h.png │ ├── open.png │ ├── red__test_8c.html │ ├── simple__test_8c.html │ ├── slaveinfo_8c.html │ ├── soem_8dox.html │ ├── structec__ALstatuscodelist__t.html │ ├── structec__FOEt.html │ ├── structec__ODlistt.html │ ├── structec__OElistt.html │ ├── structec__PDOassignt.html │ ├── structec__PDOdesct.html │ ├── structec__SDOservicet.html │ ├── structec__SDOt.html │ ├── structec__SMcommtypet.html │ ├── structec__SoEattributet.html │ ├── structec__SoElistt.html │ ├── structec__SoEmappingt.html │ ├── structec__SoEnamet.html │ ├── structec__SoEt.html │ ├── structec__adapter.html │ ├── structec__alstatust.html │ ├── structec__comt.html │ ├── structec__configlist__t.html │ ├── structec__eepromFMMUt.html │ ├── structec__eepromPDOt.html │ ├── structec__eepromSMt.html │ ├── structec__eepromt.html │ ├── structec__emcyt.html │ ├── structec__eringt.html │ ├── structec__errort.html │ ├── structec__etherheadert.html │ ├── structec__fmmut.html │ ├── structec__groupt.html │ ├── structec__idxstackT.html │ ├── structec__mbxerrorlist__t.html │ ├── structec__mbxerrort.html │ ├── structec__mbxheadert.html │ ├── structec__sdoerrorlist__t.html │ ├── structec__slavet.html │ ├── structec__smt.html │ ├── structec__soeerrorlist__t.html │ ├── structec__state__status.html │ ├── structecx__contextt.html │ ├── structin__EBOX__streamt.html │ ├── structin__EBOXt.html │ ├── structout__EBOX__streamt.html │ ├── structout__EBOXt.html │ ├── sync_off.png │ ├── sync_on.png │ ├── tab_a.png │ ├── tab_b.png │ ├── tab_h.png │ ├── tab_s.png │ ├── tabs.css │ └── tutorial_8txt.html ├── images │ └── memory_layout.png ├── soem.dox └── tutorial.txt ├── drvcomment.txt ├── include └── ethercat_soem │ ├── ecat.h │ ├── ethercatbase.h │ ├── ethercatcoe.h │ ├── ethercatconfig.h │ ├── ethercatconfiglist.h │ ├── ethercatdc.h │ ├── ethercatfoe.h │ ├── ethercatmain.h │ ├── ethercatprint.h │ ├── ethercatsoe.h │ ├── ethercattype.h │ ├── nicdrv.h │ ├── osal.h │ ├── osal_defs.h │ └── oshw.h ├── package.xml ├── scripts ├── aliastool.c ├── ebox.c ├── eepromtool.c ├── firm_update.c ├── red_test.c ├── simple_test.c └── slaveinfo.c └── src ├── ecat.c ├── ethercatbase.c ├── ethercatcoe.c ├── ethercatconfig.c ├── ethercatdc.c ├── ethercatfoe.c ├── ethercatmain.c ├── ethercatprint.c ├── ethercatsoe.c ├── nicdrv.c ├── osal.c └── oshw.c /README.md: -------------------------------------------------------------------------------- 1 | #DEPRECTATED AS OF HYDRO 2 | **This package has been deprecated as of the ROS Hydro release. An official SOEM library is available under indigo using `sudo apt-get install ros-indigo-soem** 3 | 4 | --- 5 | 6 | ## ethercat-soem 7 | 8 | This package provides an EtherCAT Master implementation using a `catkinized` version of the [OpenEtherCAT Society's Master Library](https://github.com/OpenEtherCATsociety/SOEM) v1.30. 9 | 10 | This library was forked from [Kelsey Hawkins' initial implementation](https://github.com/gt-ros-pkg/ethercat-soem). 11 | 12 | ## Notes 13 | 14 | This library makes use of Linux raw sockets. On Ubuntu this likely means you will need to set certain permissions on any executable built using this library: 15 | 16 | ```sudo setcap cap_net_raw+ep ``` 17 | -------------------------------------------------------------------------------- /doc/html/bc_s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ros-industrial-attic/ethercat-soem/66b88ff73ce19c2c329d66afe733d32e9d4e00bd/doc/html/bc_s.png -------------------------------------------------------------------------------- /doc/html/bdwn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ros-industrial-attic/ethercat-soem/66b88ff73ce19c2c329d66afe733d32e9d4e00bd/doc/html/bdwn.png -------------------------------------------------------------------------------- /doc/html/closed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ros-industrial-attic/ethercat-soem/66b88ff73ce19c2c329d66afe733d32e9d4e00bd/doc/html/closed.png -------------------------------------------------------------------------------- /doc/html/doxygen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ros-industrial-attic/ethercat-soem/66b88ff73ce19c2c329d66afe733d32e9d4e00bd/doc/html/doxygen.png -------------------------------------------------------------------------------- /doc/html/dynsections.js: -------------------------------------------------------------------------------- 1 | function toggleVisibility(linkObj) 2 | { 3 | var base = $(linkObj).attr('id'); 4 | var summary = $('#'+base+'-summary'); 5 | var content = $('#'+base+'-content'); 6 | var trigger = $('#'+base+'-trigger'); 7 | var src=$(trigger).attr('src'); 8 | if (content.is(':visible')===true) { 9 | content.hide(); 10 | summary.show(); 11 | $(linkObj).addClass('closed').removeClass('opened'); 12 | $(trigger).attr('src',src.substring(0,src.length-8)+'closed.png'); 13 | } else { 14 | content.show(); 15 | summary.hide(); 16 | $(linkObj).removeClass('closed').addClass('opened'); 17 | $(trigger).attr('src',src.substring(0,src.length-10)+'open.png'); 18 | } 19 | return false; 20 | } 21 | 22 | function updateStripes() 23 | { 24 | $('table.directory tr'). 25 | removeClass('even').filter(':visible:even').addClass('even'); 26 | } 27 | function toggleLevel(level) 28 | { 29 | $('table.directory tr').each(function(){ 30 | var l = this.id.split('_').length-1; 31 | var i = $('#img'+this.id.substring(3)); 32 | var a = $('#arr'+this.id.substring(3)); 33 | if (l 2 | 3 | 4 | 5 | 6 | 7 | SOEM: Data Fields 8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 |
16 | 17 | 18 | 19 | 24 | 25 | 26 |
20 |
SOEM 21 |  v1.3.0 22 |
23 |
27 |
28 | 29 | 30 | 37 | 43 | 49 | 73 |
74 |
75 |
Here is a list of all struct and union fields with links to the structures/unions they belong to:
76 | 77 |

- g -

85 |
86 | 87 | 92 | 93 | 94 | -------------------------------------------------------------------------------- /doc/html/functions_0x68.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | SOEM: Data Fields 8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 |
16 | 17 | 18 | 19 | 24 | 25 | 26 |
20 |
SOEM 21 |  v1.3.0 22 |
23 |
27 |
28 | 29 | 30 | 37 | 43 | 49 | 73 |
74 |
75 |
Here is a list of all struct and union fields with links to the structures/unions they belong to:
76 | 77 |

- h -

86 |
87 | 88 | 93 | 94 | 95 | -------------------------------------------------------------------------------- /doc/html/functions_0x72.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | SOEM: Data Fields 8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 |
16 | 17 | 18 | 19 | 24 | 25 | 26 |
20 |
SOEM 21 |  v1.3.0 22 |
23 |
27 |
28 | 29 | 30 | 37 | 43 | 49 | 73 |
74 |
75 |
Here is a list of all struct and union fields with links to the structures/unions they belong to:
76 | 77 |

- r -

89 |
90 | 91 | 96 | 97 | 98 | -------------------------------------------------------------------------------- /doc/html/functions_0x74.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | SOEM: Data Fields 8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 |
16 | 17 | 18 | 19 | 24 | 25 | 26 |
20 |
SOEM 21 |  v1.3.0 22 |
23 |
27 |
28 | 29 | 30 | 37 | 43 | 49 | 73 |
74 |
75 |
Here is a list of all struct and union fields with links to the structures/unions they belong to:
76 | 77 |

- t -

94 |
95 | 96 | 101 | 102 | 103 | -------------------------------------------------------------------------------- /doc/html/functions_0x75.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | SOEM: Data Fields 8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 |
16 | 17 | 18 | 19 | 24 | 25 | 26 |
20 |
SOEM 21 |  v1.3.0 22 |
23 |
27 |
28 | 29 | 30 | 37 | 43 | 49 | 73 |
74 |
75 |
Here is a list of all struct and union fields with links to the structures/unions they belong to:
76 | 77 |

- u -

91 |
92 | 93 | 98 | 99 | 100 | -------------------------------------------------------------------------------- /doc/html/functions_0x76.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | SOEM: Data Fields 8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 |
16 | 17 | 18 | 19 | 24 | 25 | 26 |
20 |
SOEM 21 |  v1.3.0 22 |
23 |
27 |
28 | 29 | 30 | 37 | 43 | 49 | 73 |
74 |
75 |
Here is a list of all struct and union fields with links to the structures/unions they belong to:
76 | 77 |

- v -

82 |
83 | 84 | 89 | 90 | 91 | -------------------------------------------------------------------------------- /doc/html/functions_vars_0x67.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | SOEM: Data Fields - Variables 8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 |
16 | 17 | 18 | 19 | 24 | 25 | 26 |
20 |
SOEM 21 |  v1.3.0 22 |
23 |
27 |
28 | 29 | 30 | 37 | 43 | 49 | 73 |
74 |
75 |   76 | 77 |

- g -

85 |
86 | 87 | 92 | 93 | 94 | -------------------------------------------------------------------------------- /doc/html/functions_vars_0x68.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | SOEM: Data Fields - Variables 8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 |
16 | 17 | 18 | 19 | 24 | 25 | 26 |
20 |
SOEM 21 |  v1.3.0 22 |
23 |
27 |
28 | 29 | 30 | 37 | 43 | 49 | 73 |
74 |
75 |   76 | 77 |

- h -

86 |
87 | 88 | 93 | 94 | 95 | -------------------------------------------------------------------------------- /doc/html/functions_vars_0x72.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | SOEM: Data Fields - Variables 8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 |
16 | 17 | 18 | 19 | 24 | 25 | 26 |
20 |
SOEM 21 |  v1.3.0 22 |
23 |
27 |
28 | 29 | 30 | 37 | 43 | 49 | 73 |
74 |
75 |   76 | 77 |

- r -

89 |
90 | 91 | 96 | 97 | 98 | -------------------------------------------------------------------------------- /doc/html/functions_vars_0x74.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | SOEM: Data Fields - Variables 8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 |
16 | 17 | 18 | 19 | 24 | 25 | 26 |
20 |
SOEM 21 |  v1.3.0 22 |
23 |
27 |
28 | 29 | 30 | 37 | 43 | 49 | 73 |
74 |
75 |   76 | 77 |

- t -

94 |
95 | 96 | 101 | 102 | 103 | -------------------------------------------------------------------------------- /doc/html/functions_vars_0x75.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | SOEM: Data Fields - Variables 8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 |
16 | 17 | 18 | 19 | 24 | 25 | 26 |
20 |
SOEM 21 |  v1.3.0 22 |
23 |
27 |
28 | 29 | 30 | 37 | 43 | 49 | 73 |
74 |
75 |   76 | 77 |

- u -

91 |
92 | 93 | 98 | 99 | 100 | -------------------------------------------------------------------------------- /doc/html/functions_vars_0x76.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | SOEM: Data Fields - Variables 8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 |
16 | 17 | 18 | 19 | 24 | 25 | 26 |
20 |
SOEM 21 |  v1.3.0 22 |
23 |
27 |
28 | 29 | 30 | 37 | 43 | 49 | 73 |
74 |
75 |   76 | 77 |

- v -

82 |
83 | 84 | 89 | 90 | 91 | -------------------------------------------------------------------------------- /doc/html/globals.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | SOEM: Globals 8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 |
16 | 17 | 18 | 19 | 24 | 25 | 26 |
20 |
SOEM 21 |  v1.3.0 22 |
23 |
27 |
28 | 29 | 30 | 37 | 43 | 54 | 75 |
76 |
77 |
Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:
78 | 79 |

- a -

94 |
95 | 96 | 101 | 102 | 103 | -------------------------------------------------------------------------------- /doc/html/globals_0x62.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | SOEM: Globals 7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 |
15 | 16 | 17 | 18 | 23 | 24 | 25 |
19 |
SOEM 20 |  v1.2.8 21 |
22 |
26 |
27 | 28 | 29 | 36 | 42 | 53 | 76 |
77 |
78 |
Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:
79 | 80 |

- b -

85 |
86 | 87 | 92 | 93 | 94 | -------------------------------------------------------------------------------- /doc/html/globals_0x63.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | SOEM: Globals 8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 |
16 | 17 | 18 | 19 | 24 | 25 | 26 |
20 |
SOEM 21 |  v1.3.0 22 |
23 |
27 |
28 | 29 | 30 | 37 | 43 | 54 | 75 |
76 |
77 |
Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:
78 | 79 |

- c -

98 |
99 | 100 | 105 | 106 | 107 | -------------------------------------------------------------------------------- /doc/html/globals_0x66.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | SOEM: Globals 7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 |
15 | 16 | 17 | 18 | 23 | 24 | 25 |
19 |
SOEM 20 |  v1.2.8 21 |
22 |
26 |
27 | 28 | 29 | 36 | 42 | 53 | 76 |
77 |
78 |
Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:
79 | 80 |

- f -

91 |
92 | 93 | 98 | 99 | 100 | -------------------------------------------------------------------------------- /doc/html/globals_0x67.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | SOEM: Globals 8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 |
16 | 17 | 18 | 19 | 24 | 25 | 26 |
20 |
SOEM 21 |  v1.3.0 22 |
23 |
27 |
28 | 29 | 30 | 37 | 43 | 54 | 75 |
76 |
77 |
Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:
78 | 79 |

- g -

87 |
88 | 89 | 94 | 95 | 96 | -------------------------------------------------------------------------------- /doc/html/globals_0x68.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | SOEM: Globals 8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 |
16 | 17 | 18 | 19 | 24 | 25 | 26 |
20 |
SOEM 21 |  v1.3.0 22 |
23 |
27 |
28 | 29 | 30 | 37 | 43 | 54 | 75 |
76 |
77 |
Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:
78 | 79 |

- h -

99 |
100 | 101 | 106 | 107 | 108 | -------------------------------------------------------------------------------- /doc/html/globals_0x6c.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | SOEM: Globals 8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 |
16 | 17 | 18 | 19 | 24 | 25 | 26 |
20 |
SOEM 21 |  v1.3.0 22 |
23 |
27 |
28 | 29 | 30 | 37 | 43 | 54 | 75 |
76 |
77 |
Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:
78 | 79 |

- l -

87 |
88 | 89 | 94 | 95 | 96 | -------------------------------------------------------------------------------- /doc/html/globals_0x6e.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | SOEM: Globals 8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 |
16 | 17 | 18 | 19 | 24 | 25 | 26 |
20 |
SOEM 21 |  v1.3.0 22 |
23 |
27 |
28 | 29 | 30 | 37 | 43 | 54 | 75 |
76 |
77 |
Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:
78 | 79 |

- n -

89 |
90 | 91 | 96 | 97 | 98 | -------------------------------------------------------------------------------- /doc/html/globals_0x72.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | SOEM: Globals 8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 |
16 | 17 | 18 | 19 | 24 | 25 | 26 |
20 |
SOEM 21 |  v1.3.0 22 |
23 |
27 |
28 | 29 | 30 | 37 | 43 | 54 | 75 |
76 |
77 |
Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:
78 | 79 |

- r -

84 |
85 | 86 | 91 | 92 | 93 | -------------------------------------------------------------------------------- /doc/html/globals_0x75.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | SOEM: Globals 8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 |
16 | 17 | 18 | 19 | 24 | 25 | 26 |
20 |
SOEM 21 |  v1.3.0 22 |
23 |
27 |
28 | 29 | 30 | 37 | 43 | 54 | 75 |
76 |
77 |
Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:
78 | 79 |

- u -

84 |
85 | 86 | 91 | 92 | 93 | -------------------------------------------------------------------------------- /doc/html/globals_0x77.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | SOEM: Globals 8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 |
16 | 17 | 18 | 19 | 24 | 25 | 26 |
20 |
SOEM 21 |  v1.3.0 22 |
23 |
27 |
28 | 29 | 30 | 37 | 43 | 54 | 75 |
76 |
77 |
Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:
78 | 79 |

- w -

86 |
87 | 88 | 93 | 94 | 95 | -------------------------------------------------------------------------------- /doc/html/globals_enum.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | SOEM: Globals 8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 |
16 | 17 | 18 | 19 | 24 | 25 | 26 |
20 |
SOEM 21 |  v1.3.0 22 |
23 |
27 |
28 | 29 | 30 | 37 | 43 | 54 |
55 |
56 |   79 |
80 | 81 | 86 | 87 | 88 | -------------------------------------------------------------------------------- /doc/html/globals_func.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | SOEM: Globals 8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 |
16 | 17 | 18 | 19 | 24 | 25 | 26 |
20 |
SOEM 21 |  v1.3.0 22 |
23 |
27 |
28 | 29 | 30 | 37 | 43 | 54 | 67 |
68 |
69 |   70 | 71 |

- a -

77 |
78 | 79 | 84 | 85 | 86 | -------------------------------------------------------------------------------- /doc/html/globals_func_0x63.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | SOEM: Globals 8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 |
16 | 17 | 18 | 19 | 24 | 25 | 26 |
20 |
SOEM 21 |  v1.3.0 22 |
23 |
27 |
28 | 29 | 30 | 37 | 43 | 54 | 67 |
68 |
69 |   70 | 71 |

- c -

76 |
77 | 78 | 83 | 84 | 85 | -------------------------------------------------------------------------------- /doc/html/globals_func_0x64.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | SOEM: Globals 8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 |
16 | 17 | 18 | 19 | 24 | 25 | 26 |
20 |
SOEM 21 |  v1.3.0 22 |
23 |
27 |
28 | 29 | 30 | 37 | 43 | 54 | 67 |
68 |
69 |   70 | 71 |

- d -

76 |
77 | 78 | 83 | 84 | 85 | -------------------------------------------------------------------------------- /doc/html/globals_func_0x69.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | SOEM: Globals 8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 |
16 | 17 | 18 | 19 | 24 | 25 | 26 |
20 |
SOEM 21 |  v1.3.0 22 |
23 |
27 |
28 | 29 | 30 | 37 | 43 | 54 | 67 |
68 |
69 |   70 | 71 |

- i -

79 |
80 | 81 | 86 | 87 | 88 | -------------------------------------------------------------------------------- /doc/html/globals_func_0x6d.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | SOEM: Globals 8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 |
16 | 17 | 18 | 19 | 24 | 25 | 26 |
20 |
SOEM 21 |  v1.3.0 22 |
23 |
27 |
28 | 29 | 30 | 37 | 43 | 54 | 67 |
68 |
69 |   70 | 71 |

- m -

80 |
81 | 82 | 87 | 88 | 89 | -------------------------------------------------------------------------------- /doc/html/globals_func_0x6f.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | SOEM: Globals 8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 |
16 | 17 | 18 | 19 | 24 | 25 | 26 |
20 |
SOEM 21 |  v1.3.0 22 |
23 |
27 |
28 | 29 | 30 | 37 | 43 | 54 | 67 |
68 |
69 |   70 | 71 |

- o -

82 |
83 | 84 | 89 | 90 | 91 | -------------------------------------------------------------------------------- /doc/html/globals_func_0x72.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | SOEM: Globals 8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 |
16 | 17 | 18 | 19 | 24 | 25 | 26 |
20 |
SOEM 21 |  v1.3.0 22 |
23 |
27 |
28 | 29 | 30 | 37 | 43 | 54 | 67 |
68 |
69 |   70 | 71 |

- r -

76 |
77 | 78 | 83 | 84 | 85 | -------------------------------------------------------------------------------- /doc/html/globals_func_0x73.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | SOEM: Globals 8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 |
16 | 17 | 18 | 19 | 24 | 25 | 26 |
20 |
SOEM 21 |  v1.3.0 22 |
23 |
27 |
28 | 29 | 30 | 37 | 43 | 54 | 67 |
68 |
69 |   70 | 71 |

- s -

100 |
101 | 102 | 107 | 108 | 109 | -------------------------------------------------------------------------------- /doc/html/globals_type.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | SOEM: Globals 8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 |
16 | 17 | 18 | 19 | 24 | 25 | 26 |
20 |
SOEM 21 |  v1.3.0 22 |
23 |
27 |
28 | 29 | 30 | 37 | 43 | 54 |
55 |
56 |   64 |
65 | 66 | 71 | 72 | 73 | -------------------------------------------------------------------------------- /doc/html/memory_layout.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ros-industrial-attic/ethercat-soem/66b88ff73ce19c2c329d66afe733d32e9d4e00bd/doc/html/memory_layout.png -------------------------------------------------------------------------------- /doc/html/nav_f.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ros-industrial-attic/ethercat-soem/66b88ff73ce19c2c329d66afe733d32e9d4e00bd/doc/html/nav_f.png -------------------------------------------------------------------------------- /doc/html/nav_g.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ros-industrial-attic/ethercat-soem/66b88ff73ce19c2c329d66afe733d32e9d4e00bd/doc/html/nav_g.png -------------------------------------------------------------------------------- /doc/html/nav_h.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ros-industrial-attic/ethercat-soem/66b88ff73ce19c2c329d66afe733d32e9d4e00bd/doc/html/nav_h.png -------------------------------------------------------------------------------- /doc/html/open.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ros-industrial-attic/ethercat-soem/66b88ff73ce19c2c329d66afe733d32e9d4e00bd/doc/html/open.png -------------------------------------------------------------------------------- /doc/html/soem_8dox.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | SOEM: soem.dox File Reference 8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 |
16 | 17 | 18 | 19 | 24 | 25 | 26 |
20 |
SOEM 21 |  v1.3.0 22 |
23 |
27 |
28 | 29 | 30 | 37 | 43 |
44 |
45 |
46 |
soem.dox File Reference
47 |
48 |
49 |
50 | 51 | 56 | 57 | 58 | -------------------------------------------------------------------------------- /doc/html/structec__ALstatuscodelist__t.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | SOEM: ec_ALstatuscodelist_t Struct Reference 8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 |
16 | 17 | 18 | 19 | 24 | 25 | 26 |
20 |
SOEM 21 |  v1.3.0 22 |
23 |
27 |
28 | 29 | 30 | 37 | 43 |
44 |
45 | 47 |
48 |
ec_ALstatuscodelist_t Struct Reference
49 |
50 |
51 | 52 | 54 | 55 | 56 | 57 | 58 |

53 | Data Fields

uint16 ALstatuscode
 
char ALstatuscodedescription [EC_MAXERRORNAME+1]
 
59 |

Detailed Description

60 |

AL status code list type definition

61 |

Field Documentation

62 | 63 |
64 |
65 | 66 | 67 | 68 | 69 |
uint16 ec_ALstatuscodelist_t::ALstatuscode
70 |
71 |

AL status code

72 | 73 |
74 |
75 | 76 |
77 |
78 | 79 | 80 | 81 | 82 |
char ec_ALstatuscodelist_t::ALstatuscodedescription[EC_MAXERRORNAME+1]
83 |
84 |

Readable description

85 | 86 |
87 |
88 |
The documentation for this struct was generated from the following file: 91 |
92 | 93 | 98 | 99 | 100 | -------------------------------------------------------------------------------- /doc/html/structec__eepromt.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | SOEM: ec_eepromt Struct Reference 8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 |
16 | 17 | 18 | 19 | 24 | 25 | 26 |
20 |
SOEM 21 |  v1.3.0 22 |
23 |
27 |
28 | 29 | 30 | 37 | 43 |
44 |
45 | 47 |
48 |
ec_eepromt Struct Reference
49 |
50 |
51 | 52 | 54 | 55 | 56 | 57 | 58 | 59 | 60 |

53 | Data Fields

uint16 comm
 
uint16 addr
 
uint16 d2
 
61 |

Detailed Description

62 |

record for ethercat eeprom communications

63 |

Field Documentation

64 | 65 |
66 |
67 | 68 | 69 | 70 | 71 |
uint16 ec_eepromt::addr
72 |
73 | 74 |
75 |
76 | 77 |
78 |
79 | 80 | 81 | 82 | 83 |
uint16 ec_eepromt::comm
84 |
85 | 86 |
87 |
88 | 89 |
90 |
91 | 92 | 93 | 94 | 95 |
uint16 ec_eepromt::d2
96 |
97 | 98 |
99 |
100 |
The documentation for this struct was generated from the following file: 103 |
104 | 105 | 110 | 111 | 112 | -------------------------------------------------------------------------------- /doc/html/structec__mbxerrorlist__t.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | SOEM: ec_mbxerrorlist_t Struct Reference 8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 |
16 | 17 | 18 | 19 | 24 | 25 | 26 |
20 |
SOEM 21 |  v1.3.0 22 |
23 |
27 |
28 | 29 | 30 | 37 | 43 |
44 |
45 | 47 |
48 |
ec_mbxerrorlist_t Struct Reference
49 |
50 |
51 | 52 | 54 | 55 | 56 | 57 | 58 |

53 | Data Fields

uint16 errorcode
 
char errordescription [EC_MAXERRORNAME+1]
 
59 |

Detailed Description

60 |

MBX error list type definition

61 |

Field Documentation

62 | 63 |
64 |
65 | 66 | 67 | 68 | 69 |
uint16 ec_mbxerrorlist_t::errorcode
70 |
71 |

MBX error code

72 | 73 |
74 |
75 | 76 |
77 |
78 | 79 | 80 | 81 | 82 |
char ec_mbxerrorlist_t::errordescription[EC_MAXERRORNAME+1]
83 |
84 |

Readable description

85 | 86 |
87 |
88 |
The documentation for this struct was generated from the following file: 91 |
92 | 93 | 98 | 99 | 100 | -------------------------------------------------------------------------------- /doc/html/structec__sdoerrorlist__t.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | SOEM: ec_sdoerrorlist_t Struct Reference 8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 |
16 | 17 | 18 | 19 | 24 | 25 | 26 |
20 |
SOEM 21 |  v1.3.0 22 |
23 |
27 |
28 | 29 | 30 | 37 | 43 |
44 |
45 | 47 |
48 |
ec_sdoerrorlist_t Struct Reference
49 |
50 |
51 | 52 | 54 | 55 | 56 | 57 | 58 |

53 | Data Fields

uint32 errorcode
 
char errordescription [EC_MAXERRORNAME+1]
 
59 |

Detailed Description

60 |

SDO error list type definition

61 |

Field Documentation

62 | 63 |
64 |
65 | 66 | 67 | 68 | 69 |
uint32 ec_sdoerrorlist_t::errorcode
70 |
71 |

Error code returned from SDO

72 | 73 |
74 |
75 | 76 |
77 |
78 | 79 | 80 | 81 | 82 |
char ec_sdoerrorlist_t::errordescription[EC_MAXERRORNAME+1]
83 |
84 |

Readable error description

85 | 86 |
87 |
88 |
The documentation for this struct was generated from the following file: 91 |
92 | 93 | 98 | 99 | 100 | -------------------------------------------------------------------------------- /doc/html/structec__smt.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | SOEM: ec_smt Struct Reference 8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 |
16 | 17 | 18 | 19 | 24 | 25 | 26 |
20 |
SOEM 21 |  v1.3.0 22 |
23 |
27 |
28 | 29 | 30 | 37 | 43 |
44 |
45 | 47 |
48 |
ec_smt Struct Reference
49 |
50 |
51 | 52 |

#include <ethercatmain.h>

53 | 54 | 56 | 57 | 58 | 59 | 60 | 61 | 62 |

55 | Data Fields

uint16 StartAddr
 
uint16 SMlength
 
uint32 SMflags
 
63 |

Detailed Description

64 |

record for sync manager

65 |

Field Documentation

66 | 67 |
68 |
69 | 70 | 71 | 72 | 73 |
uint32 ec_smt::SMflags
74 |
75 | 76 |
77 |
78 | 79 |
80 |
81 | 82 | 83 | 84 | 85 |
uint16 ec_smt::SMlength
86 |
87 | 88 |
89 |
90 | 91 |
92 |
93 | 94 | 95 | 96 | 97 |
uint16 ec_smt::StartAddr
98 |
99 | 100 |
101 |
102 |
The documentation for this struct was generated from the following file: 105 |
106 | 107 | 112 | 113 | 114 | -------------------------------------------------------------------------------- /doc/html/structec__soeerrorlist__t.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | SOEM: ec_soeerrorlist_t Struct Reference 8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 |
16 | 17 | 18 | 19 | 24 | 25 | 26 |
20 |
SOEM 21 |  v1.3.0 22 |
23 |
27 |
28 | 29 | 30 | 37 | 43 |
44 |
45 | 47 |
48 |
ec_soeerrorlist_t Struct Reference
49 |
50 |
51 | 52 | 54 | 55 | 56 | 57 | 58 |

53 | Data Fields

uint16 errorcode
 
char errordescription [EC_MAXERRORNAME+1]
 
59 |

Detailed Description

60 |

SoE error list type definition

61 |

Field Documentation

62 | 63 |
64 |
65 | 66 | 67 | 68 | 69 |
uint16 ec_soeerrorlist_t::errorcode
70 |
71 |

SoE error code

72 | 73 |
74 |
75 | 76 |
77 |
78 | 79 | 80 | 81 | 82 |
char ec_soeerrorlist_t::errordescription[EC_MAXERRORNAME+1]
83 |
84 |

Readable description

85 | 86 |
87 |
88 |
The documentation for this struct was generated from the following file: 91 |
92 | 93 | 98 | 99 | 100 | -------------------------------------------------------------------------------- /doc/html/structec__state__status.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | SOEM: ec_state_status Struct Reference 8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 |
16 | 17 | 18 | 19 | 24 | 25 | 26 |
20 |
SOEM 21 |  v1.3.0 22 |
23 |
27 |
28 | 29 | 30 | 37 | 43 |
44 |
45 | 47 |
48 |
ec_state_status Struct Reference
49 |
50 |
51 | 52 |

#include <ethercatmain.h>

53 | 54 | 56 | 57 | 58 | 59 | 60 | 61 | 62 |

55 | Data Fields

uint16 State
 
uint16 Unused
 
uint16 ALstatuscode
 
63 |

Field Documentation

64 | 65 |
66 |
67 | 68 | 69 | 70 | 71 |
uint16 ec_state_status::ALstatuscode
72 |
73 | 74 |
75 |
76 | 77 |
78 |
79 | 80 | 81 | 82 | 83 |
uint16 ec_state_status::State
84 |
85 | 86 |
87 |
88 | 89 |
90 |
91 | 92 | 93 | 94 | 95 |
uint16 ec_state_status::Unused
96 |
97 | 98 |
99 |
100 |
The documentation for this struct was generated from the following file: 103 |
104 | 105 | 110 | 111 | 112 | -------------------------------------------------------------------------------- /doc/html/structin__EBOX__streamt.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | SOEM: in_EBOX_streamt Struct Reference 8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 |
16 | 17 | 18 | 19 | 24 | 25 | 26 |
20 |
SOEM 21 |  v1.3.0 22 |
23 |
27 |
28 | 29 | 30 | 37 | 43 |
44 |
45 | 47 |
48 |
in_EBOX_streamt Struct Reference
49 |
50 |
51 | 52 | 54 | 55 | 56 | 57 | 58 |

53 | Data Fields

uint8 counter
 
int16 stream [100]
 
59 |

Field Documentation

60 | 61 |
62 |
63 | 64 | 65 | 66 | 67 |
uint8 in_EBOX_streamt::counter
68 |
69 | 70 |
71 |
72 | 73 |
74 |
75 | 76 | 77 | 78 | 79 |
int16 in_EBOX_streamt::stream[100]
80 |
81 | 82 |
83 |
84 |
The documentation for this struct was generated from the following file: 87 |
88 | 89 | 94 | 95 | 96 | -------------------------------------------------------------------------------- /doc/html/structout__EBOX__streamt.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | SOEM: out_EBOX_streamt Struct Reference 8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 |
16 | 17 | 18 | 19 | 24 | 25 | 26 |
20 |
SOEM 21 |  v1.3.0 22 |
23 |
27 |
28 | 29 | 30 | 37 | 43 |
44 |
45 | 47 |
48 |
out_EBOX_streamt Struct Reference
49 |
50 |
51 | 52 | 54 | 55 | 56 |

53 | Data Fields

uint8 control
 
57 |

Field Documentation

58 | 59 |
60 |
61 | 62 | 63 | 64 | 65 |
uint8 out_EBOX_streamt::control
66 |
67 | 68 |
69 |
70 |
The documentation for this struct was generated from the following file: 73 |
74 | 75 | 80 | 81 | 82 | -------------------------------------------------------------------------------- /doc/html/sync_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ros-industrial-attic/ethercat-soem/66b88ff73ce19c2c329d66afe733d32e9d4e00bd/doc/html/sync_off.png -------------------------------------------------------------------------------- /doc/html/sync_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ros-industrial-attic/ethercat-soem/66b88ff73ce19c2c329d66afe733d32e9d4e00bd/doc/html/sync_on.png -------------------------------------------------------------------------------- /doc/html/tab_a.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ros-industrial-attic/ethercat-soem/66b88ff73ce19c2c329d66afe733d32e9d4e00bd/doc/html/tab_a.png -------------------------------------------------------------------------------- /doc/html/tab_b.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ros-industrial-attic/ethercat-soem/66b88ff73ce19c2c329d66afe733d32e9d4e00bd/doc/html/tab_b.png -------------------------------------------------------------------------------- /doc/html/tab_h.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ros-industrial-attic/ethercat-soem/66b88ff73ce19c2c329d66afe733d32e9d4e00bd/doc/html/tab_h.png -------------------------------------------------------------------------------- /doc/html/tab_s.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ros-industrial-attic/ethercat-soem/66b88ff73ce19c2c329d66afe733d32e9d4e00bd/doc/html/tab_s.png -------------------------------------------------------------------------------- /doc/html/tabs.css: -------------------------------------------------------------------------------- 1 | .tabs, .tabs2, .tabs3 { 2 | background-image: url('tab_b.png'); 3 | width: 100%; 4 | z-index: 101; 5 | font-size: 13px; 6 | font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; 7 | } 8 | 9 | .tabs2 { 10 | font-size: 10px; 11 | } 12 | .tabs3 { 13 | font-size: 9px; 14 | } 15 | 16 | .tablist { 17 | margin: 0; 18 | padding: 0; 19 | display: table; 20 | } 21 | 22 | .tablist li { 23 | float: left; 24 | display: table-cell; 25 | background-image: url('tab_b.png'); 26 | line-height: 36px; 27 | list-style: none; 28 | } 29 | 30 | .tablist a { 31 | display: block; 32 | padding: 0 20px; 33 | font-weight: bold; 34 | background-image:url('tab_s.png'); 35 | background-repeat:no-repeat; 36 | background-position:right; 37 | color: #283A5D; 38 | text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); 39 | text-decoration: none; 40 | outline: none; 41 | } 42 | 43 | .tabs3 .tablist a { 44 | padding: 0 10px; 45 | } 46 | 47 | .tablist a:hover { 48 | background-image: url('tab_h.png'); 49 | background-repeat:repeat-x; 50 | color: #fff; 51 | text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); 52 | text-decoration: none; 53 | } 54 | 55 | .tablist li.current a { 56 | background-image: url('tab_a.png'); 57 | background-repeat:repeat-x; 58 | color: #fff; 59 | text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); 60 | } 61 | -------------------------------------------------------------------------------- /doc/images/memory_layout.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ros-industrial-attic/ethercat-soem/66b88ff73ce19c2c329d66afe733d32e9d4e00bd/doc/images/memory_layout.png -------------------------------------------------------------------------------- /drvcomment.txt: -------------------------------------------------------------------------------- 1 | For faster irq response through the NIC/NAPI/Socket layer set for TG3 (at eth0) 2 | ethtool -C eth0 rx-usecs 0 rx-frames 1 tx-usecs 0 tx-frames 1 3 | -------------------------------------------------------------------------------- /include/ethercat_soem/ethercatconfig.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Simple Open EtherCAT Master Library 3 | * 4 | * File : ethercatconfig.h 5 | * Version : 1.3.0 6 | * Date : 24-02-2013 7 | * Copyright (C) 2005-2013 Speciaal Machinefabriek Ketels v.o.f. 8 | * Copyright (C) 2005-2013 Arthur Ketels 9 | * Copyright (C) 2008-2009 TU/e Technische Universiteit Eindhoven 10 | * 11 | * SOEM is free software; you can redistribute it and/or modify it under 12 | * the terms of the GNU General Public License version 2 as published by the Free 13 | * Software Foundation. 14 | * 15 | * SOEM is distributed in the hope that it will be useful, but WITHOUT ANY 16 | * WARRANTY; without even the implied warranty of MERCHANTABILITY or 17 | * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 18 | * for more details. 19 | * 20 | * As a special exception, if other files instantiate templates or use macros 21 | * or inline functions from this file, or you compile this file and link it 22 | * with other works to produce a work based on this file, this file does not 23 | * by itself cause the resulting work to be covered by the GNU General Public 24 | * License. However the source code for this file must still be made available 25 | * in accordance with section (3) of the GNU General Public License. 26 | * 27 | * This exception does not invalidate any other reasons why a work based on 28 | * this file might be covered by the GNU General Public License. 29 | * 30 | * The EtherCAT Technology, the trade name and logo “EtherCAT” are the intellectual 31 | * property of, and protected by Beckhoff Automation GmbH. You can use SOEM for 32 | * the sole purpose of creating, using and/or selling or otherwise distributing 33 | * an EtherCAT network master provided that an EtherCAT Master License is obtained 34 | * from Beckhoff Automation GmbH. 35 | * 36 | * In case you did not receive a copy of the EtherCAT Master License along with 37 | * SOEM write to Beckhoff Automation GmbH, Eiserstraße 5, D-33415 Verl, Germany 38 | * (www.beckhoff.com). 39 | */ 40 | 41 | /** \file 42 | * \brief 43 | * Headerfile for ethercatconfig.c 44 | */ 45 | 46 | #ifndef _ethercatconfig_ 47 | #define _ethercatconfig_ 48 | 49 | #ifdef __cplusplus 50 | extern "C" 51 | { 52 | #endif 53 | 54 | #define EC_NODEOFFSET 0x1000 55 | #define EC_TEMPNODE 0xffff 56 | 57 | #ifdef EC_VER1 58 | int ec_config_init(uint8 usetable); 59 | int ec_config_map(void *pIOmap); 60 | int ec_config_map_group(void *pIOmap, uint8 group); 61 | int ec_config(uint8 usetable, void *pIOmap); 62 | int ec_recover_slave(uint16 slave, int timeout); 63 | int ec_reconfig_slave(uint16 slave, int timeout); 64 | #endif 65 | 66 | int ecx_config_init(ecx_contextt *context, uint8 usetable); 67 | int ecx_config_map_group(ecx_contextt *context, void *pIOmap, uint8 group); 68 | int ecx_recover_slave(ecx_contextt *context, uint16 slave, int timeout); 69 | int ecx_reconfig_slave(ecx_contextt *context, uint16 slave, int timeout); 70 | 71 | #ifdef __cplusplus 72 | } 73 | #endif 74 | 75 | #endif 76 | -------------------------------------------------------------------------------- /include/ethercat_soem/ethercatdc.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Simple Open EtherCAT Master Library 3 | * 4 | * File : ethercatdc.h 5 | * Version : 1.3.0 6 | * Date : 24-02-2013 7 | * Copyright (C) 2005-2013 Speciaal Machinefabriek Ketels v.o.f. 8 | * Copyright (C) 2005-2013 Arthur Ketels 9 | * Copyright (C) 2008-2009 TU/e Technische Universiteit Eindhoven 10 | * 11 | * SOEM is free software; you can redistribute it and/or modify it under 12 | * the terms of the GNU General Public License version 2 as published by the Free 13 | * Software Foundation. 14 | * 15 | * SOEM is distributed in the hope that it will be useful, but WITHOUT ANY 16 | * WARRANTY; without even the implied warranty of MERCHANTABILITY or 17 | * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 18 | * for more details. 19 | * 20 | * As a special exception, if other files instantiate templates or use macros 21 | * or inline functions from this file, or you compile this file and link it 22 | * with other works to produce a work based on this file, this file does not 23 | * by itself cause the resulting work to be covered by the GNU General Public 24 | * License. However the source code for this file must still be made available 25 | * in accordance with section (3) of the GNU General Public License. 26 | * 27 | * This exception does not invalidate any other reasons why a work based on 28 | * this file might be covered by the GNU General Public License. 29 | * 30 | * The EtherCAT Technology, the trade name and logo “EtherCAT” are the intellectual 31 | * property of, and protected by Beckhoff Automation GmbH. You can use SOEM for 32 | * the sole purpose of creating, using and/or selling or otherwise distributing 33 | * an EtherCAT network master provided that an EtherCAT Master License is obtained 34 | * from Beckhoff Automation GmbH. 35 | * 36 | * In case you did not receive a copy of the EtherCAT Master License along with 37 | * SOEM write to Beckhoff Automation GmbH, Eiserstraße 5, D-33415 Verl, Germany 38 | * (www.beckhoff.com). 39 | */ 40 | 41 | /** \file 42 | * \brief 43 | * Headerfile for ethercatdc.c 44 | */ 45 | 46 | #ifndef _EC_ECATDC_H 47 | #define _EC_ECATDC_H 48 | 49 | #ifdef __cplusplus 50 | extern "C" 51 | { 52 | #endif 53 | 54 | #ifdef EC_VER1 55 | boolean ec_configdc(); 56 | void ec_dcsync0(uint16 slave, boolean act, uint32 CyclTime, uint32 CyclShift); 57 | void ec_dcsync01(uint16 slave, boolean act, uint32 CyclTime0, uint32 CyclTime1, uint32 CyclShift); 58 | #endif 59 | 60 | boolean ecx_configdc(ecx_contextt *context); 61 | void ecx_dcsync0(ecx_contextt *context, uint16 slave, boolean act, uint32 CyclTime, uint32 CyclShift); 62 | void ecx_dcsync01(ecx_contextt *context, uint16 slave, boolean act, uint32 CyclTime0, uint32 CyclTime1, uint32 CyclShift); 63 | 64 | #ifdef __cplusplus 65 | } 66 | #endif 67 | 68 | #endif /* _EC_ECATDC_H */ 69 | -------------------------------------------------------------------------------- /include/ethercat_soem/ethercatfoe.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Simple Open EtherCAT Master Library 3 | * 4 | * File : ethercatfoe.h 5 | * Version : 1.3.0 6 | * Date : 24-02-2013 7 | * Copyright (C) 2005-2013 Speciaal Machinefabriek Ketels v.o.f. 8 | * Copyright (C) 2005-2013 Arthur Ketels 9 | * Copyright (C) 2008-2009 TU/e Technische Universiteit Eindhoven 10 | * 11 | * SOEM is free software; you can redistribute it and/or modify it under 12 | * the terms of the GNU General Public License version 2 as published by the Free 13 | * Software Foundation. 14 | * 15 | * SOEM is distributed in the hope that it will be useful, but WITHOUT ANY 16 | * WARRANTY; without even the implied warranty of MERCHANTABILITY or 17 | * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 18 | * for more details. 19 | * 20 | * As a special exception, if other files instantiate templates or use macros 21 | * or inline functions from this file, or you compile this file and link it 22 | * with other works to produce a work based on this file, this file does not 23 | * by itself cause the resulting work to be covered by the GNU General Public 24 | * License. However the source code for this file must still be made available 25 | * in accordance with section (3) of the GNU General Public License. 26 | * 27 | * This exception does not invalidate any other reasons why a work based on 28 | * this file might be covered by the GNU General Public License. 29 | * 30 | * The EtherCAT Technology, the trade name and logo “EtherCAT” are the intellectual 31 | * property of, and protected by Beckhoff Automation GmbH. You can use SOEM for 32 | * the sole purpose of creating, using and/or selling or otherwise distributing 33 | * an EtherCAT network master provided that an EtherCAT Master License is obtained 34 | * from Beckhoff Automation GmbH. 35 | * 36 | * In case you did not receive a copy of the EtherCAT Master License along with 37 | * SOEM write to Beckhoff Automation GmbH, Eiserstraße 5, D-33415 Verl, Germany 38 | * (www.beckhoff.com). 39 | */ 40 | 41 | /** \file 42 | * \brief 43 | * Headerfile for ethercatfoe.c 44 | */ 45 | 46 | #ifndef _ethercatfoe_ 47 | #define _ethercatfoe_ 48 | 49 | #ifdef __cplusplus 50 | extern "C" 51 | { 52 | #endif 53 | 54 | #ifdef EC_VER1 55 | int ec_FOEdefinehook(void *hook); 56 | int ec_FOEread(uint16 slave, char *filename, uint32 password, int *psize, void *p, int timeout); 57 | int ec_FOEwrite(uint16 slave, char *filename, uint32 password, int psize, void *p, int timeout); 58 | #endif 59 | 60 | int ecx_FOEdefinehook(ecx_contextt *context, void *hook); 61 | int ecx_FOEread(ecx_contextt *context, uint16 slave, char *filename, uint32 password, int *psize, void *p, int timeout); 62 | int ecx_FOEwrite(ecx_contextt *context, uint16 slave, char *filename, uint32 password, int psize, void *p, int timeout); 63 | 64 | #ifdef __cplusplus 65 | } 66 | #endif 67 | 68 | #endif 69 | -------------------------------------------------------------------------------- /include/ethercat_soem/ethercatprint.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Simple Open EtherCAT Master Library 3 | * 4 | * File : ethercatprint.h 5 | * Version : 1.3.0 6 | * Date : 24-02-2013 7 | * Copyright (C) 2005-2013 Speciaal Machinefabriek Ketels v.o.f. 8 | * Copyright (C) 2005-2013 Arthur Ketels 9 | * Copyright (C) 2008-2009 TU/e Technische Universiteit Eindhoven 10 | * 11 | * SOEM is free software; you can redistribute it and/or modify it under 12 | * the terms of the GNU General Public License version 2 as published by the Free 13 | * Software Foundation. 14 | * 15 | * SOEM is distributed in the hope that it will be useful, but WITHOUT ANY 16 | * WARRANTY; without even the implied warranty of MERCHANTABILITY or 17 | * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 18 | * for more details. 19 | * 20 | * As a special exception, if other files instantiate templates or use macros 21 | * or inline functions from this file, or you compile this file and link it 22 | * with other works to produce a work based on this file, this file does not 23 | * by itself cause the resulting work to be covered by the GNU General Public 24 | * License. However the source code for this file must still be made available 25 | * in accordance with section (3) of the GNU General Public License. 26 | * 27 | * This exception does not invalidate any other reasons why a work based on 28 | * this file might be covered by the GNU General Public License. 29 | * 30 | * The EtherCAT Technology, the trade name and logo “EtherCAT” are the intellectual 31 | * property of, and protected by Beckhoff Automation GmbH. You can use SOEM for 32 | * the sole purpose of creating, using and/or selling or otherwise distributing 33 | * an EtherCAT network master provided that an EtherCAT Master License is obtained 34 | * from Beckhoff Automation GmbH. 35 | * 36 | * In case you did not receive a copy of the EtherCAT Master License along with 37 | * SOEM write to Beckhoff Automation GmbH, Eiserstraße 5, D-33415 Verl, Germany 38 | * (www.beckhoff.com). 39 | */ 40 | 41 | /** \file 42 | * \brief 43 | * Headerfile for ethercatprint.c 44 | */ 45 | 46 | #ifndef _ethercatprint_ 47 | #define _ethercatprint_ 48 | 49 | #ifdef __cplusplus 50 | extern "C" 51 | { 52 | #endif 53 | 54 | char* ec_sdoerror2string( uint16 sdoerrorcode); 55 | char* ec_ALstatuscode2string( uint16 ALstatuscode); 56 | char* ec_soeerror2string( uint16 errorcode); 57 | char* ecx_elist2string(ecx_contextt *context); 58 | 59 | #ifdef EC_VER1 60 | char* ec_elist2string(void); 61 | #endif 62 | 63 | #ifdef __cplusplus 64 | } 65 | #endif 66 | 67 | #endif 68 | -------------------------------------------------------------------------------- /include/ethercat_soem/osal.h: -------------------------------------------------------------------------------- 1 | /****************************************************************************** 2 | * * *** *** 3 | * *** *** *** 4 | * *** **** ********** *** ***** *** **** ***** 5 | * ********* ********** *** ********* ************ ********* 6 | * **** *** *** *** *** **** *** 7 | * *** *** ****** *** *********** *** **** ***** 8 | * *** *** ****** *** ************* *** **** ***** 9 | * *** **** **** *** *** *** **** *** 10 | * *** ******* ***** ************** ************* ********* 11 | * *** ***** *** ******* ** ** ****** ***** 12 | * t h e r e a l t i m e t a r g e t e x p e r t s 13 | * 14 | * http://www.rt-labs.com 15 | * Copyright (C) 2009. rt-labs AB, Sweden. All rights reserved. 16 | *------------------------------------------------------------------------------ 17 | */ 18 | 19 | #ifndef _osal_ 20 | #define _osal_ 21 | 22 | #include 23 | #include 24 | 25 | /* General types */ 26 | typedef uint8_t boolean; 27 | #define TRUE 1 28 | #define FALSE 0 29 | typedef int8_t int8; 30 | typedef int16_t int16; 31 | typedef int32_t int32; 32 | typedef uint8_t uint8; 33 | typedef uint16_t uint16; 34 | typedef uint32_t uint32; 35 | typedef int64_t int64; 36 | typedef uint64_t uint64; 37 | typedef float float32; 38 | typedef double float64; 39 | 40 | typedef struct 41 | { 42 | uint32 sec; /*< Seconds elapsed since the Epoch (Jan 1, 1970) */ 43 | uint32 usec; /*< Microseconds elapsed since last second boundary */ 44 | } ec_timet; 45 | 46 | typedef struct osal_timer 47 | { 48 | ec_timet stop_time; 49 | } osal_timert; 50 | 51 | void osal_timer_start(osal_timert * self, uint32 timeout_usec); 52 | boolean osal_timer_is_expired(osal_timert * self); 53 | int osal_usleep(uint32 usec); 54 | ec_timet osal_current_time(void); 55 | void osal_time_diff(ec_timet *start, ec_timet *end, ec_timet *diff); 56 | int osal_thread_create(void *thandle, int stacksize, void *func, void *param); 57 | int osal_thread_create_rt(void *thandle, int stacksize, void *func, void *param); 58 | 59 | #endif 60 | -------------------------------------------------------------------------------- /include/ethercat_soem/osal_defs.h: -------------------------------------------------------------------------------- 1 | /****************************************************************************** 2 | * * *** *** 3 | * *** *** *** 4 | * *** **** ********** *** ***** *** **** ***** 5 | * ********* ********** *** ********* ************ ********* 6 | * **** *** *** *** *** **** *** 7 | * *** *** ****** *** *********** *** **** ***** 8 | * *** *** ****** *** ************* *** **** ***** 9 | * *** **** **** *** *** *** **** *** 10 | * *** ******* ***** ************** ************* ********* 11 | * *** ***** *** ******* ** ** ****** ***** 12 | * t h e r e a l t i m e t a r g e t e x p e r t s 13 | * 14 | * http://www.rt-labs.com 15 | * Copyright (C) 2009. rt-labs AB, Sweden. All rights reserved. 16 | *------------------------------------------------------------------------------ 17 | * $Id: osal_defs.h 472 2013-04-08 11:39:51Z rtlaka $ 18 | *------------------------------------------------------------------------------ 19 | */ 20 | 21 | #ifndef _osal_defs_ 22 | #define _osal_defs_ 23 | 24 | #ifndef PACKED 25 | #define PACKED_BEGIN 26 | #define PACKED __attribute__((__packed__)) 27 | #define PACKED_END 28 | #endif 29 | 30 | #include 31 | #define OSAL_THREAD_HANDLE pthread_t * 32 | #define OSAL_THREAD_FUNC void 33 | #define OSAL_THREAD_FUNC_RT void 34 | 35 | #endif 36 | -------------------------------------------------------------------------------- /include/ethercat_soem/oshw.h: -------------------------------------------------------------------------------- 1 | /****************************************************************************** 2 | * * *** *** 3 | * *** *** *** 4 | * *** **** ********** *** ***** *** **** ***** 5 | * ********* ********** *** ********* ************ ********* 6 | * **** *** *** *** *** **** *** 7 | * *** *** ****** *** *********** *** **** ***** 8 | * *** *** ****** *** ************* *** **** ***** 9 | * *** **** **** *** *** *** **** *** 10 | * *** ******* ***** ************** ************* ********* 11 | * *** ***** *** ******* ** ** ****** ***** 12 | * t h e r e a l t i m e t a r g e t e x p e r t s 13 | * 14 | * http://www.rt-labs.com 15 | * Copyright (C) 2009. rt-labs AB, Sweden. All rights reserved. 16 | *------------------------------------------------------------------------------ 17 | * $Id: oshw.h 452 2013-02-26 21:02:58Z smf.arthur $ 18 | *------------------------------------------------------------------------------ 19 | */ 20 | 21 | /** \file 22 | * \brief 23 | * Headerfile for ethercatbase.c 24 | */ 25 | 26 | #ifndef _oshw_ 27 | #define _oshw_ 28 | 29 | #include "ethercattype.h" 30 | #include "nicdrv.h" 31 | #include "ethercatmain.h" 32 | 33 | uint16 oshw_htons(uint16 hostshort); 34 | uint16 oshw_ntohs(uint16 networkshort); 35 | ec_adaptert * oshw_find_adapters(void); 36 | void oshw_free_adapters(ec_adaptert * adapter); 37 | 38 | #endif 39 | -------------------------------------------------------------------------------- /package.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | ethercat_soem 4 | 0.0.0 5 | 6 | ROS adaptation of Simple Open EtherCAT Master (SOEM) drivers. 7 | Original: http://soem.berlios.de/ 8 | 9 | 10 | 11 | 12 | 13 | Kelsey Hawkins 14 | 15 | 16 | 17 | 18 | 19 | GPLv2 20 | 21 | 22 | 23 | 24 | 25 | http://ros.org/wiki/ethercat_soem 26 | 27 | 28 | 29 | 30 | 31 | Arthur Ketels 32 | M.J.G. van de Molengraft 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | catkin 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | -------------------------------------------------------------------------------- /src/oshw.c: -------------------------------------------------------------------------------- 1 | /****************************************************************************** 2 | * * *** *** 3 | * *** *** *** 4 | * *** **** ********** *** ***** *** **** ***** 5 | * ********* ********** *** ********* ************ ********* 6 | * **** *** *** *** *** **** *** 7 | * *** *** ****** *** *********** *** **** ***** 8 | * *** *** ****** *** ************* *** **** ***** 9 | * *** **** **** *** *** *** **** *** 10 | * *** ******* ***** ************** ************* ********* 11 | * *** ***** *** ******* ** ** ****** ***** 12 | * t h e r e a l t i m e t a r g e t e x p e r t s 13 | * 14 | * http://www.rt-labs.com 15 | * Copyright (C) 2009. rt-labs AB, Sweden. All rights reserved. 16 | *------------------------------------------------------------------------------ 17 | * $Id: oshw.c 282 2012-09-25 10:52:42Z rtlaka $ 18 | *------------------------------------------------------------------------------ 19 | */ 20 | 21 | #include 22 | #include 23 | #include 24 | #include 25 | #include 26 | #include 27 | #include 28 | #include "ethercat_soem/oshw.h" 29 | 30 | /** 31 | * Host to Network byte order (i.e. to big endian). 32 | * 33 | * Note that Ethercat uses little endian byte order, except for the Ethernet 34 | * header which is big endian as usual. 35 | */ 36 | uint16 oshw_htons(uint16 host) 37 | { 38 | uint16 network = htons (host); 39 | return network; 40 | } 41 | 42 | /** 43 | * Network (i.e. big endian) to Host byte order. 44 | * 45 | * Note that Ethercat uses little endian byte order, except for the Ethernet 46 | * header which is big endian as usual. 47 | */ 48 | uint16 oshw_ntohs(uint16 network) 49 | { 50 | uint16 host = ntohs (network); 51 | return host; 52 | } 53 | 54 | /** Create list over available network adapters. 55 | * @return First element in linked list of adapters 56 | */ 57 | ec_adaptert * oshw_find_adapters(void) 58 | { 59 | int i; 60 | int string_len; 61 | struct if_nameindex *ids; 62 | ec_adaptert * adapter; 63 | ec_adaptert * prev_adapter; 64 | ec_adaptert * ret_adapter = NULL; 65 | 66 | 67 | /* Iterate all devices and create a local copy holding the name and 68 | * decsription. 69 | */ 70 | 71 | ids = if_nameindex (); 72 | for(i = 0; ids[i].if_index != 0; i++) 73 | { 74 | adapter = (ec_adaptert *)malloc(sizeof(ec_adaptert)); 75 | /* If we got more than one adapter save link list pointer to previous 76 | * adapter. 77 | * Else save as pointer to return. 78 | */ 79 | if (i) 80 | { 81 | prev_adapter->next = adapter; 82 | } 83 | else 84 | { 85 | ret_adapter = adapter; 86 | } 87 | 88 | /* fetch description and name, in linux we use the same on both */ 89 | adapter->next = NULL; 90 | 91 | if (ids[i].if_name) 92 | { 93 | string_len = strlen(ids[i].if_name); 94 | if (string_len > (EC_MAXLEN_ADAPTERNAME - 1)) 95 | { 96 | string_len = EC_MAXLEN_ADAPTERNAME - 1; 97 | } 98 | strncpy(adapter->name, ids[i].if_name,string_len); 99 | adapter->name[string_len] = '\0'; 100 | strncpy(adapter->desc, ids[i].if_name,string_len); 101 | adapter->desc[string_len] = '\0'; 102 | } 103 | else 104 | { 105 | adapter->name[0] = '\0'; 106 | adapter->desc[0] = '\0'; 107 | } 108 | 109 | prev_adapter = adapter; 110 | } 111 | 112 | if_freenameindex (ids); 113 | 114 | return ret_adapter; 115 | } 116 | 117 | /** Free memory allocated memory used by adapter collection. 118 | * @param[in] adapter = First element in linked list of adapters 119 | * EC_NOFRAME. 120 | */ 121 | void oshw_free_adapters(ec_adaptert * adapter) 122 | { 123 | ec_adaptert * next_adapter; 124 | /* Iterate the linked list and free all elemnts holding 125 | * adapter information 126 | */ 127 | if(adapter) 128 | { 129 | next_adapter = adapter->next; 130 | free (adapter); 131 | while (next_adapter) 132 | { 133 | adapter = next_adapter; 134 | next_adapter = adapter->next; 135 | free (adapter); 136 | } 137 | } 138 | } 139 | --------------------------------------------------------------------------------