IgH EtherCAT Master  1.5.2
slave_config.h File Reference

EtherCAT slave configuration structure. More...

Go to the source code of this file.

Data Structures

struct  ec_slave_config
 EtherCAT slave configuration. More...
 

Macros

#define EC_CONFIG_INFO(sc, fmt, args...)
 Convenience macro for printing configuration-specific information to syslog. More...
 
#define EC_CONFIG_ERR(sc, fmt, args...)
 Convenience macro for printing configuration-specific errors to syslog. More...
 
#define EC_CONFIG_WARN(sc, fmt, args...)
 Convenience macro for printing configuration-specific warnings to syslog. More...
 
#define EC_CONFIG_DBG(sc, level, fmt, args...)
 Convenience macro for printing configuration-specific debug messages to syslog. More...
 

Functions

void ec_slave_config_init (ec_slave_config_t *, ec_master_t *, uint16_t, uint16_t, uint32_t, uint32_t)
 Slave configuration constructor. More...
 
void ec_slave_config_clear (ec_slave_config_t *)
 Slave configuration destructor. More...
 
int ec_slave_config_attach (ec_slave_config_t *)
 Attaches the configuration to the addressed slave object. More...
 
void ec_slave_config_detach (ec_slave_config_t *)
 Detaches the configuration from a slave object.
 
void ec_slave_config_load_default_sync_config (ec_slave_config_t *)
 Loads the default PDO assignment from the slave object.
 
unsigned int ec_slave_config_sdo_count (const ec_slave_config_t *)
 Get the number of SDO configurations. More...
 
const ec_sdo_request_tec_slave_config_get_sdo_by_pos_const (const ec_slave_config_t *, unsigned int)
 Finds an SDO configuration via its position in the list. More...
 
unsigned int ec_slave_config_idn_count (const ec_slave_config_t *)
 Get the number of IDN configurations. More...
 
const ec_soe_request_tec_slave_config_get_idn_by_pos_const (const ec_slave_config_t *, unsigned int)
 Finds an IDN configuration via its position in the list. More...
 
unsigned int ec_slave_config_flag_count (const ec_slave_config_t *)
 Get the number of feature flags. More...
 
const ec_flag_tec_slave_config_get_flag_by_pos_const (const ec_slave_config_t *, unsigned int)
 Finds a flag via its position in the list. More...
 
ec_sdo_request_tec_slave_config_find_sdo_request (ec_slave_config_t *, unsigned int)
 Finds a CoE handler via its position in the list. More...
 
ec_reg_request_tec_slave_config_find_reg_request (ec_slave_config_t *, unsigned int)
 Finds a register handler via its position in the list. More...
 
ec_voe_handler_tec_slave_config_find_voe_handler (ec_slave_config_t *, unsigned int)
 Finds a VoE handler via its position in the list. More...
 
ec_flag_tec_slave_config_find_flag (ec_slave_config_t *, const char *)
 Finds a flag. More...
 
ec_sdo_request_tecrt_slave_config_create_sdo_request_err (ec_slave_config_t *, uint16_t, uint8_t, size_t)
 Same as ecrt_slave_config_create_sdo_request(), but with ERR_PTR() return value.
 
ec_voe_handler_tecrt_slave_config_create_voe_handler_err (ec_slave_config_t *, size_t)
 Same as ecrt_slave_config_create_voe_handler(), but with ERR_PTR() return value.
 
ec_reg_request_tecrt_slave_config_create_reg_request_err (ec_slave_config_t *, size_t)
 Same as ecrt_slave_config_create_reg_request(), but with ERR_PTR() return value.
 

Detailed Description

EtherCAT slave configuration structure.

Definition in file slave_config.h.

Macro Definition Documentation

#define EC_CONFIG_INFO (   sc,
  fmt,
  args... 
)
Value:
printk(KERN_INFO "EtherCAT %u %u:%u: " fmt, sc->master->index, \
sc->alias, sc->position, ##args)

Convenience macro for printing configuration-specific information to syslog.

This will print the message in fmt with a prefixed "EtherCAT <INDEX> <ALIAS>:<POSITION>: ", where INDEX is the master index and ALIAS and POSITION identify the configuration.

Parameters
scEtherCAT slave configuration
fmtformat string (like in printf())
argsarguments (optional)

Definition at line 62 of file slave_config.h.

#define EC_CONFIG_ERR (   sc,
  fmt,
  args... 
)
Value:
printk(KERN_ERR "EtherCAT ERROR %u %u:%u: " fmt, sc->master->index, \
sc->alias, sc->position, ##args)

Convenience macro for printing configuration-specific errors to syslog.

This will print the message in fmt with a prefixed "EtherCAT <INDEX> <ALIAS>:<POSITION>: ", where INDEX is the master index and ALIAS and POSITION identify the configuration.

Parameters
scEtherCAT slave configuration
fmtformat string (like in printf())
argsarguments (optional)

Definition at line 76 of file slave_config.h.

#define EC_CONFIG_WARN (   sc,
  fmt,
  args... 
)
Value:
printk(KERN_WARNING "EtherCAT WARNING %u %u:%u: " fmt, \
sc->master->index, sc->alias, sc->position, ##args)

Convenience macro for printing configuration-specific warnings to syslog.

This will print the message in fmt with a prefixed "EtherCAT <INDEX> <ALIAS>:<POSITION>: ", where INDEX is the master index and ALIAS and POSITION identify the configuration.

Parameters
scEtherCAT slave configuration
fmtformat string (like in printf())
argsarguments (optional)

Definition at line 90 of file slave_config.h.

#define EC_CONFIG_DBG (   sc,
  level,
  fmt,
  args... 
)
Value:
do { \
if (sc->master->debug_level >= level) { \
printk(KERN_DEBUG "EtherCAT DEBUG %u %u:%u: " fmt, \
sc->master->index, sc->alias, sc->position, ##args); \
} \
} while (0)

Convenience macro for printing configuration-specific debug messages to syslog.

This will print the message in fmt with a prefixed "EtherCAT <INDEX> <ALIAS>:<POSITION>: ", where INDEX is the master index and ALIAS and POSITION identify the configuration.

Parameters
scEtherCAT slave configuration
levelDebug level. Master's debug level must be >= level for output.
fmtformat string (like in printf())
argsarguments (optional)

Definition at line 107 of file slave_config.h.

Function Documentation

void ec_slave_config_init ( ec_slave_config_t sc,
ec_master_t master,
uint16_t  alias,
uint16_t  position,
uint32_t  vendor_id,
uint32_t  product_code 
)

Slave configuration constructor.

See ecrt_master_slave_config() for the usage of the alias and position parameters.

Parameters
scSlave configuration.
masterEtherCAT master.
aliasSlave alias.
positionSlave position.
vendor_idExpected vendor ID.
product_codeExpected product code.

Definition at line 56 of file slave_config.c.

void ec_slave_config_clear ( ec_slave_config_t sc)

Slave configuration destructor.

Clears and frees a slave configuration object.

Parameters
scSlave configuration.

Definition at line 104 of file slave_config.c.

int ec_slave_config_attach ( ec_slave_config_t sc)

Attaches the configuration to the addressed slave object.

Return values
0Success.
<0Error code.
Parameters
scSlave configuration.

Definition at line 218 of file slave_config.c.

unsigned int ec_slave_config_sdo_count ( const ec_slave_config_t sc)

Get the number of SDO configurations.

Returns
Number of SDO configurations.
Parameters
scSlave configuration.

Definition at line 382 of file slave_config.c.

const ec_sdo_request_t* ec_slave_config_get_sdo_by_pos_const ( const ec_slave_config_t sc,
unsigned int  pos 
)

Finds an SDO configuration via its position in the list.

Const version.

Returns
Search result, or NULL.
Parameters
scSlave configuration.
posPosition in the list.

Definition at line 404 of file slave_config.c.

unsigned int ec_slave_config_idn_count ( const ec_slave_config_t sc)

Get the number of IDN configurations.

Returns
Number of SDO configurations.
Parameters
scSlave configuration.

Definition at line 426 of file slave_config.c.

const ec_soe_request_t* ec_slave_config_get_idn_by_pos_const ( const ec_slave_config_t sc,
unsigned int  pos 
)

Finds an IDN configuration via its position in the list.

Const version.

Returns
Search result, or NULL.
Parameters
scSlave configuration.
posPosition in the list.

Definition at line 448 of file slave_config.c.

unsigned int ec_slave_config_flag_count ( const ec_slave_config_t sc)

Get the number of feature flags.

Returns
Number of feature flags.
Parameters
scSlave configuration.

Definition at line 470 of file slave_config.c.

const ec_flag_t* ec_slave_config_get_flag_by_pos_const ( const ec_slave_config_t sc,
unsigned int  pos 
)

Finds a flag via its position in the list.

Const version.

Returns
Search result, or NULL.
Parameters
scSlave configuration.
posPosition in the list.

Definition at line 492 of file slave_config.c.

ec_sdo_request_t* ec_slave_config_find_sdo_request ( ec_slave_config_t sc,
unsigned int  pos 
)

Finds a CoE handler via its position in the list.

Returns
Search result, or NULL.
Parameters
scSlave configuration.
posPosition in the list.

Definition at line 514 of file slave_config.c.

ec_reg_request_t* ec_slave_config_find_reg_request ( ec_slave_config_t sc,
unsigned int  pos 
)

Finds a register handler via its position in the list.

Returns
Search result, or NULL.
Parameters
scSlave configuration.
posPosition in the list.

Definition at line 536 of file slave_config.c.

ec_voe_handler_t* ec_slave_config_find_voe_handler ( ec_slave_config_t sc,
unsigned int  pos 
)

Finds a VoE handler via its position in the list.

Returns
Search result, or NULL.
Parameters
scSlave configuration.
posPosition in the list.

Definition at line 558 of file slave_config.c.

ec_flag_t* ec_slave_config_find_flag ( ec_slave_config_t sc,
const char *  key 
)

Finds a flag.

Returns
Search result, or NULL.
Parameters
scSlave configuration.
keyFlag key.

Definition at line 580 of file slave_config.c.