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

Value metadata for an object or one of its subindices (ETG.2000 ObjectInfoType). More...

#include <esi.h>

Collaboration diagram for mm::etg::EsiObject::Info:
[legend]

Classes

struct  SubItem
 Out-of-line definition of the recursive ObjectInfoType/SubItem; see the declaration inside EsiObject::Info. More...
 

Public Attributes

std::vector< uint8_t > minData
 
std::vector< uint8_t > maxData
 
std::vector< uint8_t > defaultData
 
std::optional< int64_t > minValue
 
std::optional< int64_t > maxValue
 
std::optional< int64_t > defaultValue
 
std::optional< std::string > defaultString
 
std::optional< std::string > displayName
 Plain xs:string at this level, not a NameType.
 
std::optional< uint32_t > unit
 Packed ETG.1004 notation; see esiUnitSymbol.
 
bool hasScaling = false
 A <Scaling> child was seen; not modelled.
 
std::vector< SubItemsubItems
 

Detailed Description

Value metadata for an object or one of its subindices (ETG.2000 ObjectInfoType).

Recursive by schema: an Info holds SubItem*, each of which holds another Info. The XSD models the payload as an xs:choice of four alternatives, flattened here:

  • defaultString — a plain-text default;
  • minData / maxData / defaultDataxs:hexBinary, little-endian. This is the branch real files overwhelmingly use;
  • minValue / maxValue / defaultValue — the obsolete HexDecValue branch, still emitted occasionally by vendor toolchains;
  • subItems — the composite branch.

An empty byte vector means the element was absent. The byte length is not guaranteed to equal ceil(bitSize/8) — real files disagree — which buildDeviceEntries reports as a warning rather than a failure.

Member Data Documentation

◆ defaultData

std::vector<uint8_t> mm::etg::EsiObject::Info::defaultData

◆ defaultString

std::optional<std::string> mm::etg::EsiObject::Info::defaultString

◆ defaultValue

std::optional<int64_t> mm::etg::EsiObject::Info::defaultValue

◆ displayName

std::optional<std::string> mm::etg::EsiObject::Info::displayName

Plain xs:string at this level, not a NameType.

◆ hasScaling

bool mm::etg::EsiObject::Info::hasScaling = false

A <Scaling> child was seen; not modelled.

◆ maxData

std::vector<uint8_t> mm::etg::EsiObject::Info::maxData

◆ maxValue

std::optional<int64_t> mm::etg::EsiObject::Info::maxValue

◆ minData

std::vector<uint8_t> mm::etg::EsiObject::Info::minData

◆ minValue

std::optional<int64_t> mm::etg::EsiObject::Info::minValue

◆ subItems

std::vector<SubItem> mm::etg::EsiObject::Info::subItems

◆ unit

std::optional<uint32_t> mm::etg::EsiObject::Info::unit

Packed ETG.1004 notation; see esiUnitSymbol.


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