The XML Device Description Files (XDD) are the next generation of the CANopen EDS files.
The following example shows a way to a value structure description for a UNSIGNED32 value:
At first we have to define a PDO_COB_TYPE data type in dataTypeList.
<dataTypeList> <!-- Define a 29bit type, as there is no 29 bit data type. Maybe we should define one. --> <array uniqueID="EXTTYPE" name="29 bit type"> <subrange upperLimit="28" lowerLimit="0"></subrange> <BOOL></BOOL> </array> <!-- Definition of the data type PDO_COB_TYPE --> <struct uniqueID="PDOCOBTYPE" name="PDO_COB_TYPE"> <varDeclaration uniqueID="PDOTYPE_UID1" name="PDO Exists"> <BOOL></BOOL> </varDeclaration> <varDeclaration uniqueID="PDOTYPE_UID2" name="RTR"> <BOOL></BOOL> </varDeclaration> <varDeclaration uniqueID="PDOTYPE_UID3" name="Extended Messages"> <BOOL></BOOL> </varDeclaration> <!-- here the 29bit array is used, maybe there's a better solution --> <varDeclaration uniqueID="PDOTYPE_UID4" name="COB-ID"> <dataTypeIDRef uniqueIDRef="EXTTYPE" /> </varDeclaration> </struct> </dataTypeList>
Then we need a parameter of that data type.
<parameterList> <parameter uniqueID="UID_1"> <label lang="en-us">COB-ID</label> <dataTypeIDRef uniqueIDRef="PDOCOBTYPE" /> </parameter> </parameterList>
At the end a CANopen Object can be assigned to that parameter.
<CANopenSubObject subIndex="01" name="COB-ID" objectType="7" dataType="07" accessType="rw" PDOmapping="false" uniqueIDRef="UID_1"/>