Domain Definition

This section describes the specification of a domain objects. The domains are highly application specific and are usable in a wide range.

Example:


const CO_DOM AppDomain = {
    sizeof(APP_PARA_MEM),
    &AppParaObj
};


This example defines a domain information object for the already allocated memory space of the variable AppParaObj (a variable within the application parameter example). This allows the access to the complete application parameter set with SDO segmented or block transfers from within the CANopen network.

The following descriptions explains the details of the structure members:

  • The domain size [CPU_INT32U] in bytes shall be set to the number of bytes within the domain memory area.
  • The start address of the domain memory area [CPU_INT08U *] shall be set to the first address of the domain.

The object entry, presenting the example domain above to the CANopen network, should be defined within the manufacturer specific area (e.g. index 0x2500, subindex 0x00) with the following object directory entry definition line:

{ CO_KEY(0x2500, 0, CO_DOMAIN|CO_OBJ____RW), CO_TDOMAIN, (CPU_INT32U)&AppDomain },

Note: The standard type implementation CO.TDOMAIN assumes, that the domain memory is located in RAM and is direct accessible. For other types of domain, a project specific domain type shall be implemented.