IgH EtherCAT Master
1.5.3
|
EtherCAT datagram structure. More...
Go to the source code of this file.
Data Structures | |
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_APRW = 0x03, EC_DATAGRAM_FPRD = 0x04, EC_DATAGRAM_FPWR = 0x05, EC_DATAGRAM_FPRW = 0x06, EC_DATAGRAM_BRD = 0x07, EC_DATAGRAM_BWR = 0x08, EC_DATAGRAM_BRW = 0x09, EC_DATAGRAM_LRD = 0x0A, EC_DATAGRAM_LWR = 0x0B, EC_DATAGRAM_LRW = 0x0C, EC_DATAGRAM_ARMW = 0x0D, EC_DATAGRAM_FRMW = 0x0E } |
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 *) |
Constructor. | |
void | ec_datagram_clear (ec_datagram_t *) |
Destructor. | |
void | ec_datagram_unqueue (ec_datagram_t *) |
Unqueue datagram. | |
int | ec_datagram_prealloc (ec_datagram_t *, size_t) |
Allocates internal payload memory. More... | |
void | ec_datagram_zero (ec_datagram_t *) |
Fills the datagram payload memory with zeros. | |
int | ec_datagram_aprd (ec_datagram_t *, uint16_t, uint16_t, size_t) |
Initializes an EtherCAT APRD datagram. More... | |
int | ec_datagram_apwr (ec_datagram_t *, uint16_t, uint16_t, size_t) |
Initializes an EtherCAT APWR datagram. More... | |
int | ec_datagram_aprw (ec_datagram_t *, uint16_t, uint16_t, size_t) |
Initializes an EtherCAT APRW datagram. More... | |
int | ec_datagram_armw (ec_datagram_t *, uint16_t, uint16_t, size_t) |
Initializes an EtherCAT ARMW datagram. More... | |
int | ec_datagram_fprd (ec_datagram_t *, uint16_t, uint16_t, size_t) |
Initializes an EtherCAT FPRD datagram. More... | |
int | ec_datagram_fpwr (ec_datagram_t *, uint16_t, uint16_t, size_t) |
Initializes an EtherCAT FPWR datagram. More... | |
int | ec_datagram_fprw (ec_datagram_t *, uint16_t, uint16_t, size_t) |
Initializes an EtherCAT FPRW datagram. More... | |
int | ec_datagram_frmw (ec_datagram_t *, uint16_t, uint16_t, size_t) |
Initializes an EtherCAT FRMW datagram. More... | |
int | ec_datagram_brd (ec_datagram_t *, uint16_t, size_t) |
Initializes an EtherCAT BRD datagram. More... | |
int | ec_datagram_bwr (ec_datagram_t *, uint16_t, size_t) |
Initializes an EtherCAT BWR datagram. More... | |
int | ec_datagram_brw (ec_datagram_t *, uint16_t, size_t) |
Initializes an EtherCAT BRW datagram. More... | |
int | ec_datagram_lrd (ec_datagram_t *, uint32_t, size_t) |
Initializes an EtherCAT LRD datagram. More... | |
int | ec_datagram_lwr (ec_datagram_t *, uint32_t, size_t) |
Initializes an EtherCAT LWR datagram. More... | |
int | ec_datagram_lrw (ec_datagram_t *, uint32_t, size_t) |
Initializes an EtherCAT LRW datagram. More... | |
int | ec_datagram_lrd_ext (ec_datagram_t *, uint32_t, size_t, uint8_t *) |
Initializes an EtherCAT LRD datagram with external memory. More... | |
int | ec_datagram_lwr_ext (ec_datagram_t *, uint32_t, size_t, uint8_t *) |
Initializes an EtherCAT LWR datagram with external memory. More... | |
int | ec_datagram_lrw_ext (ec_datagram_t *, uint32_t, size_t, uint8_t *) |
Initializes an EtherCAT LRW datagram with external memory. More... | |
void | ec_datagram_print_state (const ec_datagram_t *) |
Prints the state of a datagram. More... | |
void | ec_datagram_print_wc_error (const ec_datagram_t *) |
Evaluates the working counter of a single-cast datagram. More... | |
void | ec_datagram_output_stats (ec_datagram_t *) |
Outputs datagram statistics at most every second. | |
const char * | ec_datagram_type_string (const ec_datagram_t *) |
Returns a string describing the datagram type. More... | |
EtherCAT datagram structure.
Definition in file datagram.h.
enum ec_datagram_type_t |
EtherCAT datagram type.
Definition at line 50 of file datagram.h.
enum ec_datagram_state_t |
EtherCAT datagram state.
Definition at line 74 of file datagram.h.
int ec_datagram_prealloc | ( | ec_datagram_t * | datagram, |
size_t | size | ||
) |
Allocates internal payload memory.
If the allocated memory is already larger than requested, nothing ist done.
datagram | EtherCAT datagram. |
size | New payload size in bytes. |
Definition at line 150 of file datagram.c.
int ec_datagram_aprd | ( | ec_datagram_t * | datagram, |
uint16_t | ring_position, | ||
uint16_t | mem_address, | ||
size_t | data_size | ||
) |
Initializes an EtherCAT APRD datagram.
datagram | EtherCAT datagram. |
ring_position | Auto-increment address. |
mem_address | Physical memory address. |
data_size | Number of bytes to read. |
Definition at line 189 of file datagram.c.
int ec_datagram_apwr | ( | ec_datagram_t * | datagram, |
uint16_t | ring_position, | ||
uint16_t | mem_address, | ||
size_t | data_size | ||
) |
Initializes an EtherCAT APWR datagram.
datagram | EtherCAT datagram. |
ring_position | Auto-increment address. |
mem_address | Physical memory address. |
data_size | Number of bytes to write. |
Definition at line 210 of file datagram.c.
int ec_datagram_aprw | ( | ec_datagram_t * | datagram, |
uint16_t | ring_position, | ||
uint16_t | mem_address, | ||
size_t | data_size | ||
) |
Initializes an EtherCAT APRW datagram.
datagram | EtherCAT datagram. |
ring_position | Auto-increment address. |
mem_address | Physical memory address. |
data_size | Number of bytes to write. |
Definition at line 231 of file datagram.c.
int ec_datagram_armw | ( | ec_datagram_t * | datagram, |
uint16_t | ring_position, | ||
uint16_t | mem_address, | ||
size_t | data_size | ||
) |
Initializes an EtherCAT ARMW datagram.
datagram | EtherCAT datagram. |
ring_position | Auto-increment address. |
mem_address | Physical memory address. |
data_size | Number of bytes to read. |
Definition at line 252 of file datagram.c.
int ec_datagram_fprd | ( | ec_datagram_t * | datagram, |
uint16_t | configured_address, | ||
uint16_t | mem_address, | ||
size_t | data_size | ||
) |
Initializes an EtherCAT FPRD datagram.
datagram | EtherCAT datagram. |
configured_address | Configured station address. |
mem_address | Physical memory address. |
data_size | Number of bytes to read. |
Definition at line 273 of file datagram.c.
int ec_datagram_fpwr | ( | ec_datagram_t * | datagram, |
uint16_t | configured_address, | ||
uint16_t | mem_address, | ||
size_t | data_size | ||
) |
Initializes an EtherCAT FPWR datagram.
datagram | EtherCAT datagram. |
configured_address | Configured station address. |
mem_address | Physical memory address. |
data_size | Number of bytes to write. |
Definition at line 298 of file datagram.c.
int ec_datagram_fprw | ( | ec_datagram_t * | datagram, |
uint16_t | configured_address, | ||
uint16_t | mem_address, | ||
size_t | data_size | ||
) |
Initializes an EtherCAT FPRW datagram.
datagram | EtherCAT datagram. |
configured_address | Configured station address. |
mem_address | Physical memory address. |
data_size | Number of bytes to write. |
Definition at line 323 of file datagram.c.
int ec_datagram_frmw | ( | ec_datagram_t * | datagram, |
uint16_t | configured_address, | ||
uint16_t | mem_address, | ||
size_t | data_size | ||
) |
Initializes an EtherCAT FRMW datagram.
datagram | EtherCAT datagram. |
configured_address | Configured station address. |
mem_address | Physical memory address. |
data_size | Number of bytes to write. |
Definition at line 348 of file datagram.c.
int ec_datagram_brd | ( | ec_datagram_t * | datagram, |
uint16_t | mem_address, | ||
size_t | data_size | ||
) |
Initializes an EtherCAT BRD datagram.
datagram | EtherCAT datagram. |
mem_address | Physical memory address. |
data_size | Number of bytes to read. |
Definition at line 373 of file datagram.c.
int ec_datagram_bwr | ( | ec_datagram_t * | datagram, |
uint16_t | mem_address, | ||
size_t | data_size | ||
) |
Initializes an EtherCAT BWR datagram.
datagram | EtherCAT datagram. |
mem_address | Physical memory address. |
data_size | Number of bytes to write. |
Definition at line 393 of file datagram.c.
int ec_datagram_brw | ( | ec_datagram_t * | datagram, |
uint16_t | mem_address, | ||
size_t | data_size | ||
) |
Initializes an EtherCAT BRW datagram.
datagram | EtherCAT datagram. |
mem_address | Physical memory address. |
data_size | Number of bytes to write. |
Definition at line 413 of file datagram.c.
int ec_datagram_lrd | ( | ec_datagram_t * | datagram, |
uint32_t | offset, | ||
size_t | data_size | ||
) |
Initializes an EtherCAT LRD datagram.
datagram | EtherCAT datagram. |
offset | Logical address. |
data_size | Number of bytes to read/write. |
Definition at line 433 of file datagram.c.
int ec_datagram_lwr | ( | ec_datagram_t * | datagram, |
uint32_t | offset, | ||
size_t | data_size | ||
) |
Initializes an EtherCAT LWR datagram.
datagram | EtherCAT datagram. |
offset | Logical address. |
data_size | Number of bytes to read/write. |
Definition at line 452 of file datagram.c.
int ec_datagram_lrw | ( | ec_datagram_t * | datagram, |
uint32_t | offset, | ||
size_t | data_size | ||
) |
Initializes an EtherCAT LRW datagram.
datagram | EtherCAT datagram. |
offset | Logical address. |
data_size | Number of bytes to read/write. |
Definition at line 471 of file datagram.c.
int ec_datagram_lrd_ext | ( | ec_datagram_t * | datagram, |
uint32_t | offset, | ||
size_t | data_size, | ||
uint8_t * | external_memory | ||
) |
Initializes an EtherCAT LRD datagram with external memory.
datagram | EtherCAT datagram. |
offset | Logical address. |
data_size | Number of bytes to read/write. |
external_memory | Pointer to the memory to use. |
Definition at line 493 of file datagram.c.
int ec_datagram_lwr_ext | ( | ec_datagram_t * | datagram, |
uint32_t | offset, | ||
size_t | data_size, | ||
uint8_t * | external_memory | ||
) |
Initializes an EtherCAT LWR datagram with external memory.
datagram | EtherCAT datagram. |
offset | Logical address. |
data_size | Number of bytes to read/write. |
external_memory | Pointer to the memory to use. |
Definition at line 518 of file datagram.c.
int ec_datagram_lrw_ext | ( | ec_datagram_t * | datagram, |
uint32_t | offset, | ||
size_t | data_size, | ||
uint8_t * | external_memory | ||
) |
Initializes an EtherCAT LRW datagram with external memory.
datagram | EtherCAT datagram. |
offset | Logical address. |
data_size | Number of bytes to read/write. |
external_memory | Pointer to the memory to use. |
Definition at line 543 of file datagram.c.
void ec_datagram_print_state | ( | const ec_datagram_t * | datagram | ) |
Prints the state of a datagram.
Outputs a text message.
datagram | EtherCAT datagram |
Definition at line 565 of file datagram.c.
void ec_datagram_print_wc_error | ( | const ec_datagram_t * | datagram | ) |
Evaluates the working counter of a single-cast datagram.
Outputs an error message.
datagram | EtherCAT datagram |
Definition at line 602 of file datagram.c.
const char* ec_datagram_type_string | ( | const ec_datagram_t * | datagram | ) |
Returns a string describing the datagram type.
datagram | EtherCAT datagram. |
Definition at line 645 of file datagram.c.