CANopenNode
CANopen protocol stack
Loading...
Searching...
No Matches
SDO server/client

Specified in standard CiA 301 More...

+ Collaboration diagram for SDO server/client:

Macros

#define CO_CONFIG_SDO_SRV
 Configuration of SDO server.
 
#define CO_CONFIG_SDO_SRV_BUFFER_SIZE   32
 Size of the internal data buffer for the SDO server.
 
#define CO_CONFIG_SDO_CLI   (0)
 Configuration of SDO client.
 
#define CO_CONFIG_SDO_CLI_BUFFER_SIZE   32
 Size of the internal data buffer for the SDO client.
 

Detailed Description

Specified in standard CiA 301

Macro Definition Documentation

◆ CO_CONFIG_SDO_SRV

#define CO_CONFIG_SDO_SRV
Value:
#define CO_CONFIG_GLOBAL_FLAG_CALLBACK_PRE
This flag may be set globally for mainline objects to CO_CONFIG_FLAG_CALLBACK_PRE.
Definition CO_config.h:99
#define CO_CONFIG_GLOBAL_FLAG_TIMERNEXT
This flag may be set globally to CO_CONFIG_FLAG_TIMERNEXT.
Definition CO_config.h:110
#define CO_CONFIG_GLOBAL_FLAG_OD_DYNAMIC
This flag may be set globally to (0)
Definition CO_config.h:115

Configuration of SDO server.

Possible flags, can be ORed:

◆ CO_CONFIG_SDO_SRV_BUFFER_SIZE

#define CO_CONFIG_SDO_SRV_BUFFER_SIZE   32

Size of the internal data buffer for the SDO server.

If size is less than size of some variables in Object Dictionary, then data will be transferred to internal buffer in several segments. Minimum size is 8 or 899 (127*7) for block transfer.

◆ CO_CONFIG_SDO_CLI

#define CO_CONFIG_SDO_CLI   (0)

Configuration of SDO client.

Possible flags, can be ORed:

◆ CO_CONFIG_SDO_CLI_BUFFER_SIZE

#define CO_CONFIG_SDO_CLI_BUFFER_SIZE   32

Size of the internal data buffer for the SDO client.

Circular buffer is used for SDO communication. It can be read or written between successive SDO calls. So size of the buffer can be lower than size of the actual size of data transferred. If only segmented transfer is used, then buffer size can be as low as 7 bytes, if data are read/written each cycle. If block transfer is used, buffer size should be set to at least 1000 bytes, so maximum blksize can be used (blksize is calculated from free buffer space). Default value for block transfer is 1000, otherwise 32.