Motion Master 6.0.0-alpha.86
Next-generation motion control software
Loading...
Searching...
No Matches
mm::etg::EsiDataType Struct Reference

A dictionary-scoped type definition (ETG.2000 DataTypeType). More...

#include <esi.h>

Collaboration diagram for mm::etg::EsiDataType:
[legend]

Classes

struct  ArrayInfo
 One dimension of an array type (ETG.2000 ArrayInfoType). More...
 
struct  EnumInfo
 One enumerator of an enumerated type (ETG.2000 EnumInfoType). More...
 
struct  SubItem
 A member of a composite type (ETG.2000 SubItemType). More...
 

Public Attributes

std::optional< uint32_t > index
 
std::string name
 
std::optional< std::string > baseType
 
std::vector< Textcomments
 
int32_t bitSize = 0
 
std::vector< ArrayInfoarrayInfo
 
std::vector< SubItemsubItems
 
std::vector< EnumInfoenumInfo
 
std::vector< Propertyproperties
 

Detailed Description

A dictionary-scoped type definition (ETG.2000 DataTypeType).

arrayInfo, subItems and enumInfo form an xs:choice — at most one is non-empty — which yields four shapes:

  • scalar / enum: no subItems; enumInfo lists the enumerators if any;
  • ARRAY: exactly two subItems where subItems[1].type is name + "ARR" (ETG.2000 Table 12, "Data Type Composition");
  • ARRAY INFO: the helper type that reference names, carrying baseType + arrayInfo;
  • RECORD: any other non-empty subItems.
Warning
The type name space is per dictionaryEtherCATBase.xsd puts an xs:key on DataType/Name scoped to a single <Dictionary>, and a name like DT1600 is redefined independently in every device and module dictionary of the same file. Never build one global type table across dictionaries.

Member Data Documentation

◆ arrayInfo

std::vector<ArrayInfo> mm::etg::EsiDataType::arrayInfo

◆ baseType

std::optional<std::string> mm::etg::EsiDataType::baseType

◆ bitSize

int32_t mm::etg::EsiDataType::bitSize = 0

◆ comments

std::vector<Text> mm::etg::EsiDataType::comments

◆ enumInfo

std::vector<EnumInfo> mm::etg::EsiDataType::enumInfo

◆ index

std::optional<uint32_t> mm::etg::EsiDataType::index

◆ name

std::string mm::etg::EsiDataType::name

◆ properties

std::vector<Property> mm::etg::EsiDataType::properties

◆ subItems

std::vector<SubItem> mm::etg::EsiDataType::subItems

The documentation for this struct was generated from the following file: