master.c File Reference


Detailed Description

EtherCAT master methods.

Definition in file master.c.

Go to the source code of this file.

Functions

void ec_master_sync_io (ec_master_t *master)
 Sends queued datagrams and waits for their reception.
void ec_master_idle_run (void *data)
 Idle mode function.
void ec_master_eoe_run (unsigned long data)
 Does the Ethernet-over-EtherCAT processing.
ssize_t ec_show_master_attribute (struct kobject *kobj,struct attribute *attr,char *buffer)
 Formats attribute data for SysFS read access.
ssize_t ec_store_master_attribute (struct kobject *kobj,struct attribute *attr,const char *buffer,size_t size)
 Formats attribute data for SysFS write access.
int ec_master_init (ec_master_t *master, unsigned int index, unsigned int eoeif_count)
 Master constructor.
void ec_master_clear (struct kobject *kobj)
 Master destructor.
void ec_master_reset (ec_master_t *master)
 Resets the master.
void ec_master_clear_slaves (ec_master_t *master)
 Clears all slaves.
void ec_master_queue_datagram (ec_master_t *master, ec_datagram_t *datagram)
 Places a datagram in the datagram queue.
void ec_master_send_datagrams (ec_master_t *master)
 Sends the datagrams in the queue.
void ec_master_receive_datagrams (ec_master_t *master, const uint8_t *frame_data, size_t size)
 Processes a received frame.
int ec_master_bus_scan (ec_master_t *master)
 Scans the EtherCAT bus for slaves.
void ec_master_output_stats (ec_master_t *master)
 Output statistics in cyclic mode.
void ec_master_idle_start (ec_master_t *master)
 Starts the Idle mode.
void ec_master_idle_stop (ec_master_t *master)
 Stops the Idle mode.
void ec_sync_config (const ec_sii_sync_t *sync, const ec_slave_t *slave, uint8_t *data)
 Initializes a sync manager configuration page with EEPROM data.
void ec_fmmu_config (const ec_fmmu_t *fmmu, const ec_slave_t *slave, uint8_t *data)
 Initializes an FMMU configuration page.
ssize_t ec_master_info (ec_master_t *master, char *buffer)
 Formats master information for SysFS read access.
void ec_master_eoe_start (ec_master_t *master)
 Starts Ethernet-over-EtherCAT processing on demand.
void ec_master_eoe_stop (ec_master_t *master)
 Stops the Ethernet-over-EtherCAT processing.
void ec_master_calc_addressing (ec_master_t *master)
 Calculates Advanced Position Adresses.
void ec_master_measure_bus_time (ec_master_t *master)
 Measures the time, a frame is on the bus.
ec_domain_tecrt_master_create_domain (ec_master_t *master)
 Creates a domain.
int ecrt_master_activate (ec_master_t *master)
 Configures all slaves and leads them to the OP state.
void ecrt_master_deactivate (ec_master_t *master)
 Resets all slaves to INIT state.
void ecrt_master_send (ec_master_t *master)
 Asynchronous sending of datagrams.
void ecrt_master_receive (ec_master_t *master)
 Asynchronous receiving of datagrams.
void ecrt_master_prepare (ec_master_t *master)
 Prepares synchronous IO.
void ecrt_master_run (ec_master_t *master)
 Does all cyclic master work.
ec_slave_tecrt_master_get_slave (const ec_master_t *master, const char *address)
 Translates an ASCII coded bus-address to a slave pointer.
void ecrt_master_callbacks (ec_master_t *master, int(*request_cb)(void *), void(*release_cb)(void *), void *cb_data)
 Sets the locking callbacks.


Function Documentation

void ec_master_sync_io ec_master_t  ) 
 

Sends queued datagrams and waits for their reception.

Parameters:
master  EtherCAT master

Definition at line 1233 of file master.c.

void ec_master_idle_run void *   ) 
 

Idle mode function.

Parameters:
data  master pointer

Definition at line 605 of file master.c.

void ec_master_eoe_run unsigned  long  ) 
 

Does the Ethernet-over-EtherCAT processing.

Parameters:
data  master pointer

Definition at line 951 of file master.c.

ssize_t ec_show_master_attribute struct kobject *  kobj,
struct attribute *  attr,
char *  buffer
 

Formats attribute data for SysFS read access.

Returns:
number of bytes to read
Parameters:
kobj  kobject
attr  attribute
buffer  memory to store data

Definition at line 772 of file master.c.

ssize_t ec_store_master_attribute struct kobject *  kobj,
struct attribute *  attr,
const char *  buffer,
size_t  size
 

Formats attribute data for SysFS write access.

Returns:
number of bytes processed, or negative error code
Parameters:
kobj  slave's kobject
attr  attribute
buffer  memory with data
size  size of data to store

Definition at line 799 of file master.c.

int ec_master_init ec_master_t master,
unsigned int  index,
unsigned int  eoeif_count
 

Master constructor.

Returns:
0 in case of success, else < 0
Parameters:
master  EtherCAT master
index  master index
eoeif_count  number of EoE interfaces

Definition at line 99 of file master.c.

void ec_master_clear struct kobject *  kobj  ) 
 

Master destructor.

Removes all pending datagrams, clears the slave list, clears all domains and frees the device.

Parameters:
kobj  kobject of the master

Definition at line 184 of file master.c.

void ec_master_reset ec_master_t master  ) 
 

Resets the master.

Note: This function has to be called, everytime ec_master_release() is called, to free the slave list, domains etc.

Parameters:
master  EtherCAT master

Definition at line 218 of file master.c.

void ec_master_queue_datagram ec_master_t master,
ec_datagram_t datagram
 

Places a datagram in the datagram queue.

Parameters:
master  EtherCAT master
datagram  datagram

Definition at line 285 of file master.c.

void ec_master_send_datagrams ec_master_t master  ) 
 

Sends the datagrams in the queue.

Returns:
0 in case of success, else < 0
Parameters:
master  EtherCAT master

Definition at line 312 of file master.c.

void ec_master_receive_datagrams ec_master_t master,
const uint8_t *  frame_data,
size_t  size
 

Processes a received frame.

This function is called by the network driver for every received frame.

Returns:
0 in case of success, else < 0
Parameters:
master  EtherCAT master
frame_data  frame data
size  size of the received data

Definition at line 414 of file master.c.

int ec_master_bus_scan ec_master_t master  ) 
 

Scans the EtherCAT bus for slaves.

Creates a list of slave structures for further processing.

Returns:
0 in case of success, else < 0
Parameters:
master  EtherCAT master

Definition at line 501 of file master.c.

void ec_master_output_stats ec_master_t master  ) 
 

Output statistics in cyclic mode.

This function outputs statistical data on demand, but not more often than necessary. The output happens at most once a second.

Parameters:
master  EtherCAT master

Definition at line 529 of file master.c.

void ec_master_idle_start ec_master_t master  ) 
 

Starts the Idle mode.

Parameters:
master  EtherCAT master

Definition at line 559 of file master.c.

void ec_master_idle_stop ec_master_t master  ) 
 

Stops the Idle mode.

Parameters:
master  EtherCAT master

Definition at line 581 of file master.c.

void ec_sync_config const ec_sii_sync_t sync,
const ec_slave_t slave,
uint8_t *  data
 

Initializes a sync manager configuration page with EEPROM data.

The referenced memory (data) must be at least EC_SYNC_SIZE bytes.

Parameters:
sync  sync manager
slave  EtherCAT slave
data  > configuration memory

Definition at line 641 of file master.c.

void ec_fmmu_config const ec_fmmu_t fmmu,
const ec_slave_t slave,
uint8_t *  data
 

Initializes an FMMU configuration page.

The referenced memory (data) must be at least EC_FMMU_SIZE bytes.

Parameters:
fmmu  FMMU
slave  EtherCAT slave
data  > configuration memory

Definition at line 672 of file master.c.

ssize_t ec_master_info ec_master_t master,
char *  buffer
 

Formats master information for SysFS read access.

Returns:
number of bytes written
Parameters:
master  EtherCAT master
buffer  memory to store data

Definition at line 700 of file master.c.

void ec_master_eoe_start ec_master_t master  ) 
 

Starts Ethernet-over-EtherCAT processing on demand.

Parameters:
master  EtherCAT master

Definition at line 854 of file master.c.

void ec_master_eoe_stop ec_master_t master  ) 
 

Stops the Ethernet-over-EtherCAT processing.

Parameters:
master  EtherCAT master

Definition at line 922 of file master.c.

void ec_master_calc_addressing ec_master_t master  ) 
 

Calculates Advanced Position Adresses.

Parameters:
master  EtherCAT master

Definition at line 1013 of file master.c.


Generated on Fri Sep 1 14:56:57 2006 for IgH EtherCAT master by  doxygen 1.4.6