slave.h File Reference

EtherCAT slave structure. More...

Go to the source code of this file.

Data Structures

struct  ec_slave_port_t
 Slave port. More...
struct  ec_sii_t
 Slave information interface data. More...
struct  ec_slave
 EtherCAT slave. More...

Defines

#define EC_SLAVE_INFO(slave, fmt, args...)
 Convenience macro for printing slave-specific information to syslog.
#define EC_SLAVE_ERR(slave, fmt, args...)
 Convenience macro for printing slave-specific errors to syslog.
#define EC_SLAVE_WARN(slave, fmt, args...)
 Convenience macro for printing slave-specific warnings to syslog.
#define EC_SLAVE_DBG(slave, level, fmt, args...)
 Convenience macro for printing slave-specific debug messages to syslog.

Functions

void ec_slave_init (ec_slave_t *, ec_master_t *, ec_device_index_t, uint16_t, uint16_t)
 Slave constructor.
void ec_slave_clear (ec_slave_t *)
 Slave destructor.
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_fetch_sii_strings (ec_slave_t *, const uint8_t *, size_t)
 Fetches data from a STRING category.
int ec_slave_fetch_sii_general (ec_slave_t *, const uint8_t *, size_t)
 Fetches data from a GENERAL category.
int ec_slave_fetch_sii_syncs (ec_slave_t *, const uint8_t *, size_t)
 Fetches data from a SYNC MANAGER category.
int ec_slave_fetch_sii_pdos (ec_slave_t *, const uint8_t *, size_t, ec_direction_t)
 Fetches data from a [RT]xPDO category.
ec_sync_tec_slave_get_sync (ec_slave_t *, uint8_t)
 Get the sync manager given an index.
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_tec_slave_get_sdo (ec_slave_t *, uint16_t)
 Get an SDO from the dictionary.
const ec_sdo_tec_slave_get_sdo_const (const ec_slave_t *, uint16_t)
 Get an SDO from the dictionary.
const ec_sdo_tec_slave_get_sdo_by_pos_const (const ec_slave_t *, uint16_t)
 Get an SDO from the dictionary, given its position in the list.
uint16_t ec_slave_sdo_count (const ec_slave_t *)
 Get the number of SDOs in the dictionary.
const ec_pdo_tec_slave_find_pdo (const ec_slave_t *, uint16_t)
 Finds a mapped PDO.
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 *, uint32_t *)
 Recursively calculates transmission delays.


Detailed Description

EtherCAT slave structure.

Definition in file slave.h.


Define Documentation

#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 62 of file slave.h.

#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 76 of file slave.h.

#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 90 of file slave.h.

#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 106 of file slave.h.


Function Documentation

void ec_slave_init ( ec_slave_t slave,
ec_master_t master,
ec_device_index_t  dev_idx,
uint16_t  ring_position,
uint16_t  station_address 
)

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 62 of file slave.c.

void ec_slave_clear ( ec_slave_t slave  ) 

Slave destructor.

Clears and frees a slave object.

Parameters:
slave  EtherCAT slave

Definition at line 170 of file slave.c.

int ec_slave_fetch_sii_strings ( ec_slave_t slave,
const uint8_t *  data,
size_t  data_size 
)

Fetches data from a STRING category.

Todo:
range checking
Returns:
0 in case of success, else < 0
Parameters:
slave  EtherCAT slave
data  category data
data_size  number of bytes

Definition at line 312 of file slave.c.

int ec_slave_fetch_sii_general ( ec_slave_t slave,
const uint8_t *  data,
size_t  data_size 
)

Fetches data from a GENERAL category.

Returns:
0 in case of success, else < 0
Parameters:
slave  EtherCAT slave
data  category data
data_size  size in bytes

Definition at line 368 of file slave.c.

int ec_slave_fetch_sii_syncs ( ec_slave_t slave,
const uint8_t *  data,
size_t  data_size 
)

Fetches data from a SYNC MANAGER category.

Appends the sync managers described in the category to the existing ones.

Returns:
0 in case of success, else < 0
Parameters:
slave  EtherCAT slave.
data  Category data.
data_size  Number of bytes.

Definition at line 419 of file slave.c.

int ec_slave_fetch_sii_pdos ( ec_slave_t slave,
const uint8_t *  data,
size_t  data_size,
ec_direction_t  dir 
)

Fetches data from a [RT]xPDO category.

Returns:
0 in case of success, else < 0
Parameters:
slave  EtherCAT slave
data  category data
data_size  number of bytes
dir  PDO direction.

Definition at line 485 of file slave.c.

ec_sync_t* ec_slave_get_sync ( ec_slave_t slave,
uint8_t  sync_index 
)

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 590 of file slave.c.

ec_sdo_t* ec_slave_get_sdo ( ec_slave_t slave,
uint16_t  index 
)

Get an SDO from the dictionary.

Returns:
The desired SDO, or NULL.
Parameters:
slave  EtherCAT slave
index  SDO index

Definition at line 636 of file slave.c.

const ec_sdo_t* ec_slave_get_sdo_const ( const ec_slave_t slave,
uint16_t  index 
)

Get an SDO from the dictionary.

const version.

Returns:
The desired SDO, or NULL.
Parameters:
slave  EtherCAT slave
index  SDO index

Definition at line 662 of file slave.c.

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 684 of file slave.c.

uint16_t ec_slave_sdo_count ( const ec_slave_t slave  ) 

Get the number of SDOs in the dictionary.

Returns:
SDO count.
Parameters:
slave  EtherCAT slave.

Definition at line 706 of file slave.c.

const ec_pdo_t* ec_slave_find_pdo ( const ec_slave_t slave,
uint16_t  index 
)

Finds a mapped PDO.

Returns:
The desired PDO object, or NULL.
Parameters:
slave  Slave.
index  PDO index to find.

Definition at line 725 of file slave.c.


Generated on Mon Jun 20 09:31:31 2016 for IgH EtherCAT Master by  doxygen 1.5.6