Lely core libraries 2.3.4
sdo.h
Go to the documentation of this file.
1
24#ifndef LELY_CO_INTERN_SDO_H_
25#define LELY_CO_INTERN_SDO_H_
26
27#include "co.h"
28#include <lely/co/sdo.h>
29
31#define CO_SDO_CS_MASK 0xe0
32
34#define CO_SDO_CS_ABORT 0x80
35
37#define CO_SDO_SCS_DN_INI_RES 0x60
38
40#define CO_SDO_SCS_DN_SEG_RES 0x20
41
43#define CO_SDO_SCS_UP_INI_RES 0x40
44
46#define CO_SDO_SCS_UP_SEG_RES 0x00
47
49#define CO_SDO_SCS_BLK_DN_RES 0xa0
50
52#define CO_SDO_SCS_BLK_UP_RES 0xc0
53
55#define CO_SDO_CCS_DN_INI_REQ 0x20
56
58#define CO_SDO_CCS_DN_SEG_REQ 0x00
59
61#define CO_SDO_CCS_UP_INI_REQ 0x40
62
64#define CO_SDO_CCS_UP_SEG_REQ 0x60
65
67#define CO_SDO_CCS_BLK_DN_REQ 0xc0
68
70#define CO_SDO_CCS_BLK_UP_REQ 0xa0
71
73#define CO_SDO_SC_MASK 0x03
74
76#define CO_SDO_SC_INI_BLK 0x00
77
79#define CO_SDO_SC_END_BLK 0x01
80
82#define CO_SDO_SC_BLK_RES 0x02
83
85#define CO_SDO_SC_START_UP 0x03
86
91#define CO_SDO_INI_SIZE_MASK 0x0f
92
94#define CO_SDO_INI_SIZE_IND 0x01
95
97#define CO_SDO_INI_SIZE_EXP 0x02
98
105#define CO_SDO_INI_SIZE_EXP_GET(cs) (4 - (((cs)&CO_SDO_INI_SIZE_MASK) >> 2))
106
113#define CO_SDO_INI_SIZE_EXP_SET(n) \
114 ((((4 - (n)) << 2) | 0x03) & CO_SDO_INI_SIZE_MASK)
115
117#define CO_SDO_SEG_TOGGLE 0x10
118
123#define CO_SDO_SEG_SIZE_MASK 0x0e
124
131#define CO_SDO_SEG_SIZE_GET(cs) (7 - (((cs)&CO_SDO_SEG_SIZE_MASK) >> 1))
132
139#define CO_SDO_SEG_SIZE_SET(n) (((7 - (n)) << 1) & CO_SDO_SEG_SIZE_MASK)
140
142#define CO_SDO_SEG_LAST 0x01
143
145#define CO_SDO_BLK_SIZE_IND 0x02
146
148#define CO_SDO_BLK_CRC 0x04
149
151#define CO_SDO_SEQ_LAST 0x80
152
157#define CO_SDO_BLK_SIZE_MASK 0x1c
158
165#define CO_SDO_BLK_SIZE_GET(cs) (7 - (((cs)&CO_SDO_BLK_SIZE_MASK) >> 2))
166
173#define CO_SDO_BLK_SIZE_SET(n) (((7 - (n)) << 2) & CO_SDO_BLK_SIZE_MASK)
174
176#define CO_SDO_MAX_SEQNO 127
177
178#endif // !LELY_CO_INTERN_SDO_H_
This header file is part of the CANopen library; it contains the Service Data Object (SDO) declaratio...
This is the internal header file of the CANopen library.