|
#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.
|
|
|
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.
|
|
|
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.
|
|
This modules contains functions on how EtherCAT datagrams are beeing build.
◆ ec_cyclic_datagram_destroy()
Destroy cyclic datagram structure.
This functions destroys a datagram.
- Parameters
-
[in] | cdg | Pointer to cyclic datagram structure. |
- Return values
-
◆ ec_cyclic_datagram_init()
Initialize cyclic datagram structure.
This function initializes a default datagram.
- Parameters
-
[in] | cdg | Pointer to cyclic datagram structure. |
[in] | recv_timeout | Receive timeout in [ns]. |
- Return values
-
◆ ec_datagram_cast()
Cast pointer to ec_datagram_t type.
- Parameters
-
[in] | p | Pointer which contains a ec_datagram_t. |
- Returns
- Pointer to ec_datagram_t.
◆ ec_datagram_first()
Get pointer to first datagram in frame.
- Parameters
-
[in] | pf | Pointer which contains a EtherCAT frame. |
- Returns
- Pointer to first datagram in frame.
◆ ec_datagram_mark_next()
Marking next field in datagram.
- Parameters
-
[in,out] | pdg | Pointer which contains a datagram. |
◆ ec_datagram_next()
Get pointer to next datagram in frame.
- Parameters
-
[in] | pdg | Pointer which contains a EtherCAT datagram. |
- Returns
- Pointer to next datagram in frame.
◆ ec_datagram_payload()
Get pointer to datagram payload.
- Parameters
-
[in] | pdg | Pointer which contains a EtherCAT datagram. |
- Returns
- Pointer to payload of datagram.
◆ ec_datagram_wkc()
Get working counter of datagram.
- Parameters
-
[in] | pdg | Pointer which contains a EtherCAT datagram. |
- Returns
- working counter of datagram.
◆ ec_frame_add_datagram_log()
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.
This function add a logical datagram at the end of frame
.
- Parameters
-
[in,out] | frame | Pointer to frame. |
[in] | cmd | Ethercat command. |
[in] | idx | Ethercat frame index. |
[in] | adr | Logical address. |
[in] | payload | Frame payload. |
[in] | payload_len | Length of payload. |
◆ ec_frame_add_datagram_phys()
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.
This function add a non-logical datagram at the end of frame
.
- Parameters
-
[in,out] | frame | Pointer to frame. |
[in] | cmd | Ethercat command. |
[in] | idx | Ethercat frame index. |
[in] | adp | Auto inc/configured address. |
[in] | ado | Physical mem address. |
[in] | payload | Frame payload. |
[in] | payload_len | Length of payload. |
◆ ec_frame_init()
Initialize empty frame.
Initialize a frame with empty content.
- Parameters
-
[in,out] | frame | Pointer to frame. |
- Return values
-