libethercat - an embeddable realtime EtherCAT-master library
Communicate with EtherCAT slaves attached to a Network interface.
Loading...
Searching...
No Matches
common.h
Go to the documentation of this file.
1
13
/*
14
* This file is part of libethercat.
15
*
16
* libethercat is free software; you can redistribute it and/or
17
* modify it under the terms of the GNU Lesser General Public
18
* License as published by the Free Software Foundation; either
19
* version 3 of the License, or (at your option) any later version.
20
*
21
* libethercat is distributed in the hope that it will be useful,
22
* but WITHOUT ANY WARRANTY; without even the implied warranty of
23
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
24
* Lesser General Public License for more details.
25
*
26
* You should have received a copy of the GNU Lesser General Public
27
* License along with libethercat (LICENSE.LGPL-V3); if not, write
28
* to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
29
* Floor, Boston, MA 02110-1301, USA.
30
*
31
* Please note that the use of the EtherCAT technology, the EtherCAT
32
* brand name and the EtherCAT logo is only permitted if the property
33
* rights of Beckhoff Automation GmbH are observed. For further
34
* information please contact Beckhoff Automation GmbH & Co. KG,
35
* Hülshorstweg 20, D-33415 Verl, Germany (www.beckhoff.com) or the
36
* EtherCAT Technology Group, Ostendstraße 196, D-90482 Nuremberg,
37
* Germany (ETG, www.ethercat.org).
38
*
39
*/
40
41
#ifndef LIBETHERCAT_COMMON_H
42
#define LIBETHERCAT_COMMON_H
43
44
#include <libethercat/config.h>
45
46
#include <libosal/types.h>
47
48
#include <stdint.h>
49
50
#ifdef LIBETHERCAT_MAX_SLAVES
52
#define LEC_MAX_SLAVES ( (osal_size_t)LIBETHERCAT_MAX_SLAVES )
53
#else
55
#define LEC_MAX_SLAVES ( (osal_size_t) 256u)
56
#endif
57
58
#ifdef LIBETHERCAT_MAX_GROUPS
60
#define LEC_MAX_GROUPS ( (osal_size_t)LIBETHERCAT_MAX_GROUPS )
61
#else
63
#define LEC_MAX_GROUPS ( (osal_size_t) 8u)
64
#endif
65
66
#ifdef LIBETHERCAT_MAX_PDLEN
68
#define LEC_MAX_PDLEN ( (osal_size_t)LIBETHERCAT_MAX_PDLEN )
69
#else
71
#define LEC_MAX_PDLEN ( (osal_size_t)(2u * 1518u))
72
#endif
73
74
#ifdef LIBETHERCAT_MAX_MBX_ENTRIES
76
#define LEC_MAX_MBX_ENTRIES ( (osal_size_t)LIBETHERCAT_MAX_MBX_ENTRIES )
77
#else
79
#define LEC_MAX_MBX_ENTRIES ( (osal_size_t) 16u)
80
#endif
81
82
#ifdef LIBETHERCAT_MAX_INIT_CMD_DATA
84
#define LEC_MAX_INIT_CMD_DATA ( (osal_size_t)LIBETHERCAT_MAX_INIT_CMD_DATA )
85
#else
87
#define LEC_MAX_INIT_CMD_DATA ( (osal_size_t) 2048u)
88
#endif
89
90
#ifdef LIBETHERCAT_MAX_SLAVE_FMMU
92
#define LEC_MAX_SLAVE_FMMU ( (osal_size_t)LIBETHERCAT_MAX_SLAVE_FMMU )
93
#else
95
#define LEC_MAX_SLAVE_FMMU ( (osal_size_t) 8u)
96
#endif
97
98
#ifdef LIBETHERCAT_MAX_SLAVE_SM
100
#define LEC_MAX_SLAVE_SM ( (osal_size_t)LIBETHERCAT_MAX_SLAVE_SM )
101
#else
103
#define LEC_MAX_SLAVE_SM ( (osal_size_t) 8u)
104
#endif
105
106
#ifdef LIBETHERCAT_MAX_DATAGRAMS
108
#define LEC_MAX_DATAGRAMS ( (osal_size_t)LIBETHERCAT_MAX_DATAGRAMS )
109
#else
111
#define LEC_MAX_DATAGRAMS ( (osal_size_t) 100u)
112
#endif
113
114
#ifdef LIBETHERCAT_MAX_EEPROM_CAT_SM
116
#define LEC_MAX_EEPROM_CAT_SM ( (osal_size_t)LIBETHERCAT_MAX_EEPROM_CAT_SM )
117
#else
119
#define LEC_MAX_EEPROM_CAT_SM ( (osal_size_t)LEC_MAX_SLAVE_SM)
120
#endif
121
122
#ifdef LIBETHERCAT_MAX_EEPROM_CAT_FMMU
124
#define LEC_MAX_EEPROM_CAT_FMMU ( (osal_size_t)LIBETHERCAT_MAX_EEPROM_CAT_FMMU )
125
#else
127
#define LEC_MAX_EEPROM_CAT_FMMU ( (osal_size_t)LEC_MAX_SLAVE_FMMU)
128
#endif
129
130
#ifdef LIBETHERCAT_MAX_EEPROM_CAT_PDO
132
#define LEC_MAX_EEPROM_CAT_PDO ( (osal_size_t)LIBETHERCAT_MAX_EEPROM_CAT_PDO )
133
#else
135
#define LEC_MAX_EEPROM_CAT_PDO ( (osal_size_t) 128u)
136
#endif
137
138
#ifdef LIBETHERCAT_MAX_EEPROM_CAT_PDO_ENTRIES
140
#define LEC_MAX_EEPROM_CAT_PDO_ENTRIES ( (osal_size_t)LIBETHERCAT_MAX_EEPROM_CAT_PDO_ENTRIES )
141
#else
143
#define LEC_MAX_EEPROM_CAT_PDO_ENTRIES ( (osal_size_t) 32u)
144
#endif
145
146
#ifdef LIBETHERCAT_MAX_EEPROM_CAT_STRINGS
148
#define LEC_MAX_EEPROM_CAT_STRINGS ( (osal_size_t)LIBETHERCAT_MAX_EEPROM_CAT_STRINGS )
149
#else
151
#define LEC_MAX_EEPROM_CAT_STRINGS ( (osal_size_t) 128u)
152
#endif
153
154
#ifdef LIBETHERCAT_MAX_EEPROM_CAT_DC
156
#define LEC_MAX_EEPROM_CAT_DC ( (osal_size_t)LIBETHERCAT_MAX_EEPROM_CAT_DC )
157
#else
159
#define LEC_MAX_EEPROM_CAT_DC ( (osal_size_t) 8u)
160
#endif
161
162
#ifdef LIBETHERCAT_MAX_STRING_LEN
164
#define LEC_MAX_STRING_LEN ( (osal_size_t)LIBETHERCAT_MAX_STRING_LEN )
165
#else
167
#define LEC_MAX_STRING_LEN ( (osal_size_t) 128u)
168
#endif
169
170
#ifdef LIBETHERCAT_MAX_DATA
172
#define LEC_MAX_DATA ( (osal_size_t)LIBETHERCAT_MAX_DATA )
173
#else
175
#define LEC_MAX_DATA ( (osal_size_t) 4096u)
176
#endif
177
178
#ifdef LIBETHERCAT_MAX_DS402_SUBDEVS
180
#define LEC_MAX_DS402_SUBDEVS ( (osal_size_t)LIBETHERCAT_MAX_DS402_SUBDEVS )
181
#else
183
#define LEC_MAX_DS402_SUBDEVS ( (osal_size_t) 4u)
184
#endif
185
186
#ifdef LIBETHERCAT_MAX_COE_EMERGENCIES
188
#define LEC_MAX_COE_EMERGENCIES ( (osal_size_t)LIBETHERCAT_MAX_COE_EMERGENCIES )
189
#else
191
#define LEC_MAX_COE_EMERGENCIES ( (osal_size_t) 10u)
192
#endif
193
194
#ifdef LIBETHERCAT_MAX_COE_EMERGENCY_MSG_LEN
196
#define LEC_MAX_COE_EMERGENCY_MSG_LEN ( (osal_size_t)LIBETHERCAT_MAX_COE_EMERGENCY_MSG_LEN )
197
#else
199
#define LEC_MAX_COE_EMERGENCY_MSG_LEN ( (osal_size_t) 32u)
200
#endif
201
202
#define PACKED __attribute__((__packed__))
203
204
#ifndef min
205
#define min(a, b) ((a) < (b) ? (a) : (b))
206
#endif
207
208
typedef
osal_uint8_t ec_data_t[
LEC_MAX_DATA
];
/* variants for easy data access */
209
211
typedef
struct
ec_pd
{
212
osal_uint8_t *
pd
;
213
osal_size_t
len
;
214
}
ec_pd_t
;
215
216
typedef
osal_uint16_t ec_state_t;
217
#define EC_STATE_UNKNOWN ((osal_uint16_t)(0x0000u))
218
#define EC_STATE_INIT ((osal_uint16_t)(0x0001u))
219
#define EC_STATE_PREOP ((osal_uint16_t)(0x0002u))
220
#define EC_STATE_BOOT ((osal_uint16_t)(0x0003u))
221
#define EC_STATE_SAFEOP ((osal_uint16_t)(0x0004u))
222
#define EC_STATE_OP ((osal_uint16_t)(0x0008u))
223
#define EC_STATE_MASK ((osal_uint16_t)(0x000Fu))
224
#define EC_STATE_ERROR ((osal_uint16_t)(0x0010u))
225
#define EC_STATE_RESET ((osal_uint16_t)(0x0010u))
226
227
#endif
// LIBETHERCAT_COMMON_H
228
LEC_MAX_DATA
#define LEC_MAX_DATA
Maximum data length.
Definition
common.h:175
ec_pd_t
struct ec_pd ec_pd_t
process data structure
ec_pd
process data structure
Definition
common.h:211
ec_pd::len
osal_size_t len
process data length
Definition
common.h:213
ec_pd::pd
osal_uint8_t * pd
pointer to process data
Definition
common.h:212
include
libethercat
common.h
Generated by
1.9.8