EtherCAT slave structure.
More...
Go to the source code of this file.
|
| #define | EC_SLAVE_INFO(slave, fmt, args...) |
| | Convenience macro for printing slave-specific information to syslog. More...
|
| |
| #define | EC_SLAVE_ERR(slave, fmt, args...) |
| | Convenience macro for printing slave-specific errors to syslog. More...
|
| |
| #define | EC_SLAVE_WARN(slave, fmt, args...) |
| | Convenience macro for printing slave-specific warnings to syslog. More...
|
| |
| #define | EC_SLAVE_DBG(slave, level, fmt, args...) |
| | Convenience macro for printing slave-specific debug messages to syslog. More...
|
| |
|
| void | ec_slave_init (ec_slave_t *, ec_master_t *, ec_device_index_t, uint16_t, uint16_t) |
| | Slave constructor. More...
|
| |
| void | ec_slave_clear (ec_slave_t *) |
| | Slave destructor. More...
|
| |
|
void | ec_slave_clear_sync_managers (ec_slave_t *) |
| | Clear the sync manager array.
|
| |
|
void | ec_slave_request_state (ec_slave_t *, ec_slave_state_t) |
| | Request a slave state and resets the error flag.
|
| |
|
void | ec_slave_set_state (ec_slave_t *, ec_slave_state_t) |
| | Sets the application state of a slave.
|
| |
| int | ec_slave_analyze_sii_data (ec_slave_t *) |
| | Analyzes SII data. More...
|
| |
| ec_sync_t * | ec_slave_get_sync (ec_slave_t *, uint8_t) |
| | Get the sync manager given an index. More...
|
| |
|
void | ec_slave_sdo_dict_info (const ec_slave_t *, unsigned int *, unsigned int *) |
| | Counts the total number of SDOs and entries in the dictionary.
|
| |
| ec_sdo_t * | ec_slave_get_sdo (ec_slave_t *, uint16_t) |
| | Get an SDO from the dictionary. More...
|
| |
| const ec_sdo_t * | ec_slave_get_sdo_const (const ec_slave_t *, uint16_t) |
| | Get an SDO from the dictionary. More...
|
| |
| const ec_sdo_t * | ec_slave_get_sdo_by_pos_const (const ec_slave_t *, uint16_t) |
| | Get an SDO from the dictionary, given its position in the list. More...
|
| |
| uint16_t | ec_slave_sdo_count (const ec_slave_t *) |
| | Get the number of SDOs in the dictionary. More...
|
| |
| const ec_pdo_t * | ec_slave_find_pdo (const ec_slave_t *, uint16_t) |
| | Finds a mapped PDO. More...
|
| |
|
void | ec_slave_attach_pdo_names (ec_slave_t *) |
| | Attach PDO names.
|
| |
|
void | ec_slave_calc_port_delays (ec_slave_t *) |
| | Calculates the port transmission delays.
|
| |
|
void | ec_slave_calc_transmission_delays_rec (ec_slave_t *, ec_slave_t *, uint32_t *) |
| | Recursively calculates transmission delays.
|
| |
| void | ec_read_mbox_lock_clear (ec_slave_t *) |
| | Clears the mailbox lock. More...
|
| |
| int | ec_read_mbox_locked (ec_slave_t *) |
| | Return the current mailbox lock status and lock it if not locked. More...
|
| |
EtherCAT slave structure.
Definition in file slave.h.
◆ EC_SLAVE_INFO
| #define EC_SLAVE_INFO |
( |
|
slave, |
|
|
|
fmt, |
|
|
|
args... |
|
) |
| |
Value:printk(KERN_INFO "EtherCAT %u-%u: " fmt, slave->master->index, \
slave->ring_position, ##args)
Convenience macro for printing slave-specific information to syslog.
This will print the message in fmt with a prefixed "EtherCAT <INDEX>-<POSITION>: ", where INDEX is the master index and POSITION is the slave's ring position.
- Parameters
-
| slave | EtherCAT slave |
| fmt | format string (like in printf()) |
| args | arguments (optional) |
Definition at line 56 of file slave.h.
◆ EC_SLAVE_ERR
| #define EC_SLAVE_ERR |
( |
|
slave, |
|
|
|
fmt, |
|
|
|
args... |
|
) |
| |
Value:printk(KERN_ERR "EtherCAT ERROR %u-%u: " fmt, slave->master->index, \
slave->ring_position, ##args)
Convenience macro for printing slave-specific errors to syslog.
This will print the message in fmt with a prefixed "EtherCAT <INDEX>-<POSITION>: ", where INDEX is the master index and POSITION is the slave's ring position.
- Parameters
-
| slave | EtherCAT slave |
| fmt | format string (like in printf()) |
| args | arguments (optional) |
Definition at line 70 of file slave.h.
◆ EC_SLAVE_WARN
| #define EC_SLAVE_WARN |
( |
|
slave, |
|
|
|
fmt, |
|
|
|
args... |
|
) |
| |
Value:printk(KERN_WARNING "EtherCAT WARNING %u-%u: " fmt, \
slave->master->index, slave->ring_position, ##args)
Convenience macro for printing slave-specific warnings to syslog.
This will print the message in fmt with a prefixed "EtherCAT <INDEX>-<POSITION>: ", where INDEX is the master index and POSITION is the slave's ring position.
- Parameters
-
| slave | EtherCAT slave |
| fmt | format string (like in printf()) |
| args | arguments (optional) |
Definition at line 84 of file slave.h.
◆ EC_SLAVE_DBG
| #define EC_SLAVE_DBG |
( |
|
slave, |
|
|
|
level, |
|
|
|
fmt, |
|
|
|
args... |
|
) |
| |
Value:do { \
if (slave->master->debug_level >= level) { \
printk(KERN_DEBUG "EtherCAT DEBUG %u-%u: " fmt, \
slave->master->index, slave->ring_position, ##args); \
} \
} while (0)
Convenience macro for printing slave-specific debug messages to syslog.
This will print the message in fmt with a prefixed "EtherCAT <INDEX>-<POSITION>: ", where INDEX is the master index and POSITION is the slave's ring position.
- Parameters
-
| slave | EtherCAT slave |
| level | Debug level. Master's debug level must be >= level for output. |
| fmt | format string (like in printf()) |
| args | arguments (optional) |
Definition at line 100 of file slave.h.
◆ ec_slave_init()
Slave constructor.
- Returns
- 0 in case of success, else < 0
- Parameters
-
| slave | EtherCAT slave |
| master | EtherCAT master |
| dev_idx | Device index. |
| ring_position | ring position |
| station_address | station address to configure |
Definition at line 65 of file slave.c.
◆ ec_slave_clear()
Slave destructor.
Clears and frees a slave object.
- Parameters
-
Definition at line 213 of file slave.c.
◆ ec_slave_analyze_sii_data()
| int ec_slave_analyze_sii_data |
( |
ec_slave_t * |
slave | ) |
|
Analyzes SII data.
- Returns
- 0 in case of success, else < 0
- Parameters
-
Definition at line 372 of file slave.c.
◆ ec_slave_get_sync()
Get the sync manager given an index.
- Returns
- pointer to sync manager, or NULL.
- Parameters
-
| slave | EtherCAT slave. |
| sync_index | Sync manager index. |
Definition at line 864 of file slave.c.
◆ ec_slave_get_sdo()
Get an SDO from the dictionary.
- Returns
- The desired SDO, or NULL.
- Parameters
-
| slave | EtherCAT slave |
| index | SDO index |
Definition at line 910 of file slave.c.
◆ ec_slave_get_sdo_const()
Get an SDO from the dictionary.
const version.
- Returns
- The desired SDO, or NULL.
- Parameters
-
| slave | EtherCAT slave |
| index | SDO index |
Definition at line 936 of file slave.c.
◆ ec_slave_get_sdo_by_pos_const()
| const ec_sdo_t* ec_slave_get_sdo_by_pos_const |
( |
const ec_slave_t * |
slave, |
|
|
uint16_t |
sdo_position |
|
) |
| |
Get an SDO from the dictionary, given its position in the list.
- Returns
- The desired SDO, or NULL.
- Parameters
-
| slave | EtherCAT slave. |
| sdo_position | SDO list position. |
Definition at line 958 of file slave.c.
◆ ec_slave_sdo_count()
| uint16_t ec_slave_sdo_count |
( |
const ec_slave_t * |
slave | ) |
|
Get the number of SDOs in the dictionary.
- Returns
- SDO count.
- Parameters
-
Definition at line 980 of file slave.c.
◆ ec_slave_find_pdo()
Finds a mapped PDO.
- Returns
- The desired PDO object, or NULL.
- Parameters
-
| slave | Slave. |
| index | PDO index to find. |
Definition at line 999 of file slave.c.
◆ ec_read_mbox_lock_clear()
| void ec_read_mbox_lock_clear |
( |
ec_slave_t * |
slave | ) |
|
Clears the mailbox lock.
Lock-free, so that it can be called from any context (also from realtime context, e. g. via ecrt_voe_handler_execute()).
Definition at line 187 of file slave.c.
◆ ec_read_mbox_locked()
Return the current mailbox lock status and lock it if not locked.
Lock-free, see ec_read_mbox_lock_clear().
- Returns
- Non-zero, if the lock was already taken.
Definition at line 201 of file slave.c.