libethercat - an embeddable realtime EtherCAT-master library
Communicate with EtherCAT slaves attached to a Network interface.
|
ethercat datagram More...
#include <libosal/types.h>
#include <libosal/mutex.h>
#include "libethercat/common.h"
#include "libethercat/pool.h"
#include "libethercat/idx.h"
Go to the source code of this file.
Data Structures | |
struct | ec_frame |
struct | ec_datagram |
struct | ec_cyclic_datagram |
Macros | |
#define | EC_WKC_SIZE (2u) |
Working counter byte length. | |
#define | ec_frame_hdr_length (sizeof(ec_frame_t)) |
EtherCAT frame header length. | |
#define | ec_frame_length(f) ((f)->len) |
EtherCAT frame length. | |
#define | ec_frame_end(pframe) (&((osal_uint8_t *)(pframe))[(pframe)->len]) |
Pointer to EtherCAT frame end. | |
#define | ec_datagram_hdr_length (sizeof(ec_datagram_t)) |
EtherCAT datagram header length. | |
#define | ec_datagram_length(pdg) (ec_datagram_hdr_length + (pdg)->len + EC_WKC_SIZE) |
EtherCAT datagram length. | |
Typedefs | |
typedef struct ec_frame | ec_frame_t |
EtherCAT frame type. | |
typedef struct ec_datagram | ec_datagram_t |
EtherCAT datagram type. | |
typedef struct ec_cyclic_datagram | ec_cyclic_datagram_t |
EtherCAT cyclic datagram type. | |
Functions | |
int | ec_cyclic_datagram_init (ec_cyclic_datagram_t *cdg, osal_uint64_t recv_timeout) |
Initialize cyclic datagram structure. | |
int | ec_cyclic_datagram_destroy (ec_cyclic_datagram_t *cdg) |
Destroy cyclic datagram structure. | |
int | ec_frame_init (ec_frame_t *frame) |
Initialize empty frame. | |
void | ec_frame_add_datagram_phys (ec_frame_t *frame, osal_uint8_t cmd, osal_uint8_t idx, osal_uint16_t adp, osal_uint16_t ado, osal_uint8_t *payload, osal_size_t payload_len) |
Add datagram at the end of frame. | |
void | ec_frame_add_datagram_log (ec_frame_t *frame, osal_uint8_t cmd, osal_uint8_t idx, osal_uint32_t adr, osal_uint8_t *payload, osal_size_t payload_len) |
Add datagram at the end of frame. | |
static ec_datagram_t * | ec_datagram_cast (osal_uint8_t *p) |
Cast pointer to ec_datagram_t type. | |
static void | ec_datagram_mark_next (ec_datagram_t *pdg) |
Marking next field in datagram. | |
static ec_datagram_t * | ec_datagram_first (ec_frame_t *pf) |
Get pointer to first datagram in frame. | |
static ec_datagram_t * | ec_datagram_next (ec_datagram_t *pdg) |
Get pointer to next datagram in frame. | |
static osal_uint8_t * | ec_datagram_payload (ec_datagram_t *pdg) |
Get pointer to datagram payload. | |
static osal_uint16_t | ec_datagram_wkc (ec_datagram_t *pdg) |
Get working counter of datagram. | |
ethercat datagram
These are EtherCAT datagram specific configuration functions.