datagram.h File Reference


Detailed Description

EtherCAT datagram structure.

Definition in file datagram.h.

Go to the source code of this file.

Data Structures

union  ec_address_t
 EtherCAT address. More...
struct  ec_datagram_t
 EtherCAT datagram. More...

Enumerations

enum  ec_datagram_type_t {
  EC_DATAGRAM_NONE = 0x00, EC_DATAGRAM_APRD = 0x01, EC_DATAGRAM_APWR = 0x02, EC_DATAGRAM_NPRD = 0x04,
  EC_DATAGRAM_NPWR = 0x05, EC_DATAGRAM_BRD = 0x07, EC_DATAGRAM_BWR = 0x08, EC_DATAGRAM_LRW = 0x0C
}
 EtherCAT datagram type. More...
enum  ec_datagram_state_t {
  EC_DATAGRAM_INIT, EC_DATAGRAM_QUEUED, EC_DATAGRAM_SENT, EC_DATAGRAM_RECEIVED,
  EC_DATAGRAM_TIMED_OUT, EC_DATAGRAM_ERROR
}
 EtherCAT datagram state. More...

Functions

void ec_datagram_init (ec_datagram_t *)
 Datagram constructor.
void ec_datagram_clear (ec_datagram_t *)
 Datagram destructor.
int ec_datagram_prealloc (ec_datagram_t *, size_t)
 Allocates datagram data memory.
int ec_datagram_nprd (ec_datagram_t *, uint16_t, uint16_t, size_t)
 Initializes an EtherCAT NPRD datagram.
int ec_datagram_npwr (ec_datagram_t *, uint16_t, uint16_t, size_t)
 Initializes an EtherCAT NPWR datagram.
int ec_datagram_aprd (ec_datagram_t *, uint16_t, uint16_t, size_t)
 Initializes an EtherCAT APRD datagram.
int ec_datagram_apwr (ec_datagram_t *, uint16_t, uint16_t, size_t)
 Initializes an EtherCAT APWR datagram.
int ec_datagram_brd (ec_datagram_t *, uint16_t, size_t)
 Initializes an EtherCAT BRD datagram.
int ec_datagram_bwr (ec_datagram_t *, uint16_t, size_t)
 Initializes an EtherCAT BWR datagram.
int ec_datagram_lrw (ec_datagram_t *, uint32_t, size_t)
 Initializes an EtherCAT LRW datagram.


Enumeration Type Documentation

enum ec_datagram_type_t
 

EtherCAT datagram type.

Enumerator:
EC_DATAGRAM_NONE  Dummy.
EC_DATAGRAM_APRD  Auto-increment physical read.
EC_DATAGRAM_APWR  Auto-increment physical write.
EC_DATAGRAM_NPRD  Node-addressed physical read.
EC_DATAGRAM_NPWR  Node-addressed physical write.
EC_DATAGRAM_BRD  Broadcast read.
EC_DATAGRAM_BWR  Broadcast write.
EC_DATAGRAM_LRW  Logical read/write.

Definition at line 56 of file datagram.h.

enum ec_datagram_state_t
 

EtherCAT datagram state.

Enumerator:
EC_DATAGRAM_INIT  new datagram
EC_DATAGRAM_QUEUED  datagram queued by master
EC_DATAGRAM_SENT  datagram has been sent and still in the queue
EC_DATAGRAM_RECEIVED  datagram has been received and dequeued
EC_DATAGRAM_TIMED_OUT  datagram timed out and was dequeued
EC_DATAGRAM_ERROR  error while sending/receiving, datagram dequeued

Definition at line 73 of file datagram.h.


Function Documentation

int ec_datagram_prealloc ec_datagram_t datagram,
size_t  size
 

Allocates datagram data memory.

If the allocated memory is already larger than requested, nothing ist done.

Returns:
0 in case of success, else < 0
Parameters:
datagram  EtherCAT datagram
size  New size in bytes

Definition at line 102 of file datagram.c.

int ec_datagram_nprd ec_datagram_t datagram,
uint16_t  node_address,
uint16_t  offset,
size_t  data_size
 

Initializes an EtherCAT NPRD datagram.

Node-adressed physical read.

Returns:
0 in case of success, else < 0
Parameters:
datagram  EtherCAT datagram
node_address  configured station address
offset  physical memory address
data_size  number of bytes to read

Definition at line 131 of file datagram.c.

int ec_datagram_npwr ec_datagram_t datagram,
uint16_t  node_address,
uint16_t  offset,
size_t  data_size
 

Initializes an EtherCAT NPWR datagram.

Node-adressed physical write.

Returns:
0 in case of success, else < 0
Parameters:
datagram  EtherCAT datagram
node_address  configured station address
offset  physical memory address
data_size  number of bytes to write

Definition at line 159 of file datagram.c.

int ec_datagram_aprd ec_datagram_t datagram,
uint16_t  ring_position,
uint16_t  offset,
size_t  data_size
 

Initializes an EtherCAT APRD datagram.

Autoincrement physical read.

Returns:
0 in case of success, else < 0
Parameters:
datagram  EtherCAT datagram
ring_position  auto-increment position
offset  physical memory address
data_size  number of bytes to read

Definition at line 187 of file datagram.c.

int ec_datagram_apwr ec_datagram_t datagram,
uint16_t  ring_position,
uint16_t  offset,
size_t  data_size
 

Initializes an EtherCAT APWR datagram.

Autoincrement physical write.

Returns:
0 in case of success, else < 0
Parameters:
datagram  EtherCAT datagram
ring_position  auto-increment position
offset  physical memory address
data_size  number of bytes to write

Definition at line 212 of file datagram.c.

int ec_datagram_brd ec_datagram_t datagram,
uint16_t  offset,
size_t  data_size
 

Initializes an EtherCAT BRD datagram.

Broadcast read.

Returns:
0 in case of success, else < 0
Parameters:
datagram  EtherCAT datagram
offset  physical memory address
data_size  number of bytes to read

Definition at line 237 of file datagram.c.

int ec_datagram_bwr ec_datagram_t datagram,
uint16_t  offset,
size_t  data_size
 

Initializes an EtherCAT BWR datagram.

Broadcast write.

Returns:
0 in case of success, else < 0
Parameters:
datagram  EtherCAT datagram
offset  physical memory address
data_size  number of bytes to write

Definition at line 260 of file datagram.c.

int ec_datagram_lrw ec_datagram_t datagram,
uint32_t  offset,
size_t  data_size
 

Initializes an EtherCAT LRW datagram.

Logical read write.

Returns:
0 in case of success, else < 0
Parameters:
datagram  EtherCAT datagram
offset  logical address
data_size  number of bytes to read/write

Definition at line 283 of file datagram.c.


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