PROFINET IO Controller Stack 1.0.0
Modern C++ implementation of a PROFINET IO Controller stack
Loading...
Searching...
No Matches
profinet::gsdml Namespace Reference

Classes

struct  GSDMLBitDataItem
 
struct  GSDMLDataItem
 One I/O data item within a submodule's cyclic data (GSDML DataItem element). More...
 
struct  GSDMLDevice
 Complete parsed GSDML device profile. More...
 
struct  GSDMLModule
 A GSDML module definition (ModuleItem), possibly offering multiple virtual submodules. More...
 
struct  GSDMLModuleReference
 Reference describing how a module may be used by the DAP. More...
 
class  GsdmlRealDeviceTest
 GoogleTest fixture for real vendor GSDML regression tests. More...
 
struct  GSDMLSubmodule
 A GSDML virtual submodule definition (VirtualSubmoduleItem). More...
 
struct  GSDMLSubmoduleReference
 Reference to a submodule that may be used by a module. More...
 
struct  GSDMLSystemSubmodule
 A GSDML system-defined submodule (e.g. built into the DAP: interface, port). More...
 

Functions

GSDMLDevice ParseGsdml (const std::string &path)
 Parse a GSDML file into a GSDMLDevice.
 
GSDMLDevice ParseGsdmlString (const std::string &xml)
 Parse GSDML content already held in memory.
 
 TEST_F (GsdmlRealDeviceTest, ParsesAumaGsdml)
 
 TEST_F (GsdmlRealDeviceTest, ParsesPhoenixGsdml)
 
 TEST_F (GsdmlRealDeviceTest, ParsesVendorId)
 
 TEST_F (GsdmlRealDeviceTest, ParsesDeviceId)
 
 TEST_F (GsdmlRealDeviceTest, FindsDap)
 
 TEST_F (GsdmlRealDeviceTest, FindsActuatorStatusModule)
 
 TEST_F (GsdmlRealDeviceTest, FindsActuatorControlModule)
 
 TEST_F (GsdmlRealDeviceTest, ParsesStatusInputLength)
 
 TEST_F (GsdmlRealDeviceTest, ParsesControlOutputLength)
 
 TEST_F (GsdmlRealDeviceTest, ParsesStatusSubmoduleIdent)
 
 TEST_F (GsdmlRealDeviceTest, ParsesControlSubmoduleIdent)
 
 TEST_F (GsdmlRealDeviceTest, BuildIoSlotsMatchesExpectedInputLengths)
 
 TEST_F (GsdmlRealDeviceTest, BuildIoSlotsMatchesExpectedOutputLengths)
 
 TEST_F (GsdmlRealDeviceTest, BuildIoSlotsProducesExpectedModuleIdents)
 
 TEST_F (GsdmlRealDeviceTest, FindsPhoenixIoModule)
 
 TEST_F (GsdmlRealDeviceTest, FindsPhoenixDap)
 
 TEST_F (GsdmlRealDeviceTest, BuildsPhoenixDefaultIoSlotConfiguration)
 
 TEST_F (GsdmlRealDeviceTest, PhoenixFixedModuleResolvesToSlotOne)
 
 TEST_F (GsdmlRealDeviceTest, PhoenixDefaultSubmoduleResolvesToPnio512512)
 
 TEST_F (GsdmlRealDeviceTest, PhoenixModuleReferenceContainsUsedSubslot)
 
 TEST_F (GsdmlRealDeviceTest, PhoenixApplicationRelationsExposeTimingProperties)
 
 TEST_F (GsdmlRealDeviceTest, PhoenixDapVirtualSubmoduleBuildsSlotZero)
 
 TEST_F (GsdmlRealDeviceTest, PhoenixInterfaceSubmoduleBuildsAtPdevSubslot)
 
 TEST_F (GsdmlRealDeviceTest, PhoenixPortSubmoduleBuildsAtPdevSubslot)
 
 TEST_F (GsdmlRealDeviceTest, PhoenixExplicitPluggedConfigurationOverridesDefault)
 
 TEST_F (GsdmlRealDeviceTest, ExplicitModuleAssignmentRejectsDisallowedPhoenixSlot)
 
 TEST_F (GsdmlRealDeviceTest, ExplicitConfigurationRejectsUnknownModule)
 
 TEST_F (GsdmlRealDeviceTest, ExplicitConfigurationRejectsUnknownSubmodule)
 
 TEST_F (GsdmlRealDeviceTest, ExplicitConfigurationRejectsDisallowedSubslot)
 
 TEST_F (GsdmlRealDeviceTest, BuildIoSlotsIsDeterministic)
 
 TEST_F (GsdmlRealDeviceTest, AumaInputDataItemsMatchReportedLength)
 
 TEST_F (GsdmlRealDeviceTest, AumaOutputDataItemsMatchReportedLength)
 
 TEST_F (GsdmlRealDeviceTest, PhoenixInputDataItemsMatchReportedLength)
 
 TEST_F (GsdmlRealDeviceTest, PhoenixOutputDataItemsMatchReportedLength)
 
 TEST_F (GsdmlRealDeviceTest, AumaBuildIoSlotsContainsExpectedDeviceConfiguration)
 
 TEST_F (GsdmlRealDeviceTest, AumaBuildIoSlotsDoesNotMutateParsedDevice)
 
 TEST_F (GsdmlRealDeviceTest, AumaCyclicIoLengthsMatchConfiguredModules)
 
 TEST_F (GsdmlRealDeviceTest, AumaRepeatedParsingProducesSameMetadata)
 
 TEST_F (GsdmlRealDeviceTest, BuildIoSlotsMatchesExpectedSlots)
 
 TEST_F (GsdmlRealDeviceTest, BuildIoSlotsMatchesExpectedInputOutputLengths)
 
 TEST_F (GsdmlRealDeviceTest, BuildsAumaIoSignalCatalog)
 
 TEST_F (GsdmlRealDeviceTest, AumaSensorSignalsUseStatusSubmodule)
 
 TEST_F (GsdmlRealDeviceTest, AumaActuatorSignalsUseControlSubmodule)
 
 TEST_F (GsdmlRealDeviceTest, AumaSignalsStayWithinProcessDataLengths)
 
 TEST_F (GsdmlRealDeviceTest, AumaCatalogExcludesReservedSignals)
 
 TEST_F (GsdmlRealDeviceTest, AumaCatalogSignalsHaveValueClassification)
 
 TEST_F (GsdmlRealDeviceTest, BuildsPhoenixIoSignalCatalog)
 
 TEST_F (GsdmlRealDeviceTest, PhoenixCatalogExcludesReservedSignals)
 
 TEST_F (GsdmlRealDeviceTest, AumaSignalsMatchGeneratedIoSlots)
 
 TEST_F (GsdmlRealDeviceTest, ParsesAumaBitDataItems)
 
 TEST_F (GsdmlRealDeviceTest, AumaLogByteCreatesEightBitSignals)
 
 TEST_F (GsdmlRealDeviceTest, AumaCommandBitsHaveCorrectByteAndBitOffsets)
 

Function Documentation

◆ ParseGsdml()

GSDMLDevice profinet::gsdml::ParseGsdml ( const std::string &  path)

Parse a GSDML file into a GSDMLDevice.

Parameters
pathFilesystem path to the .xml GSDML file.
Returns
The parsed device profile.

Throws std::runtime_error if the file can't be read or isn't well-formed XML, or if it doesn't contain a recognizable ISO15745Profile/ProfileBody/DeviceIdentity structure.

Definition at line 1398 of file gsdml.cpp.

References ParseGsdml(), and ParseGsdmlString().

Referenced by ParseGsdml(), profinet::sim::TEST(), profinet::sim::TEST(), profinet::sim::TEST(), and TEST_F().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ ParseGsdmlString()

GSDMLDevice profinet::gsdml::ParseGsdmlString ( const std::string &  xml)

Parse GSDML content already held in memory.

Parameters
xmlComplete GSDML file content.
Returns
The parsed device profile.

Throws std::runtime_error if Xml isn't well-formed, or doesn't contain a recognizable device description structure.

Definition at line 1114 of file gsdml.cpp.

References profinet::gsdml::GSDMLModuleReference::allowedSlots, profinet::gsdml::GSDMLSubmoduleReference::allowedSubslots, profinet::gsdml::GSDMLDevice::applicationRelations, ctx, profinet::gsdml::GSDMLDevice::dapModuleId, profinet::gsdml::GSDMLDevice::dapModuleIdentNumber, profinet::gsdml::GSDMLDevice::dapModuleInfo, profinet::gsdml::GSDMLDevice::dapModuleName, profinet::gsdml::GSDMLDevice::dapSlots, profinet::gsdml::GSDMLDevice::dapSubmoduleIdentNumber, profinet::gsdml::GSDMLDevice::dapSubmodules, profinet::gsdml::GSDMLDevice::deviceId, profinet::gsdml::GSDMLDevice::deviceName, profinet::gsdml::GSDMLModuleReference::fixedSlots, profinet::gsdml::GSDMLSubmoduleReference::fixedSubslots, profinet::gsdml::GSDMLSubmodule::id, profinet::gsdml::GSDMLModule::id, profinet::gsdml::GSDMLModuleReference::moduleId, profinet::gsdml::GSDMLModule::moduleIdentNumber, profinet::gsdml::GSDMLSystemSubmodule::moduleName, profinet::gsdml::GSDMLDevice::moduleReferences, profinet::gsdml::GSDMLDevice::modules, profinet::gsdml::GSDMLModule::name, profinet::rpc::ApplicationRelations::numberOfAr, ParseGsdmlString(), profinet::gsdml::GSDMLModule::physicalSubslots, profinet::rpc::ApplicationRelations::reductionRatioTimingProperties, profinet::rpc::ApplicationRelations::sendClockTimingProperties, profinet::rpc::ApplicationRelations::startupMode, profinet::gsdml::GSDMLSubmoduleReference::submoduleId, profinet::gsdml::GSDMLSubmodule::submoduleIdentNumber, profinet::gsdml::GSDMLSystemSubmodule::submoduleIdentNumber, profinet::gsdml::GSDMLModule::submoduleReferences, profinet::gsdml::GSDMLModule::submodules, profinet::gsdml::GSDMLDevice::submodules, profinet::gsdml::GSDMLSystemSubmodule::subslot, profinet::gsdml::GSDMLDevice::systemSubmodules, profinet::gsdml::GSDMLModuleReference::usedSlots, profinet::gsdml::GSDMLSubmoduleReference::usedSubslots, profinet::gsdml::GSDMLDevice::vendorId, and profinet::gsdml::GSDMLDevice::vendorName.

Referenced by ParseGsdml(), and ParseGsdmlString().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ TEST_F() [1/52]

profinet::gsdml::TEST_F ( GsdmlRealDeviceTest  ,
AumaActuatorSignalsUseControlSubmodule   
)
Test:
Verify AUMA actuator signals originate from the expected control process-data submodule.

Definition at line 934 of file test_gsdml_real_device.cpp.

References profinet::io::IoSignalCatalog::FromGsdml(), profinet::io::IoSignal::moduleId, profinet::io::IoSignal::moduleIdentNumber, profinet::io::IoSignal::possibleSlots, profinet::io::IoSignal::possibleSubslots, profinet::io::IoSignal::submoduleId, and profinet::io::IoSignal::submoduleIdentNumber.

+ Here is the call graph for this function:

◆ TEST_F() [2/52]

profinet::gsdml::TEST_F ( GsdmlRealDeviceTest  ,
AumaBuildIoSlotsContainsExpectedDeviceConfiguration   
)
Test:
Verify that the AUMA default GSDML configuration resolves its DAP and configured actuator input/output modules into IOSlots.

Definition at line 659 of file test_gsdml_real_device.cpp.

◆ TEST_F() [3/52]

profinet::gsdml::TEST_F ( GsdmlRealDeviceTest  ,
AumaBuildIoSlotsDoesNotMutateParsedDevice   
)
Test:
Verify that AUMA BuildIoSlots does not change the parsed GSDML model.

Definition at line 686 of file test_gsdml_real_device.cpp.

◆ TEST_F() [4/52]

profinet::gsdml::TEST_F ( GsdmlRealDeviceTest  ,
AumaCatalogExcludesReservedSignals   
)
Test:
Verify reserved DataItems from the real AUMA GSDML are not exposed as signals.

Definition at line 987 of file test_gsdml_real_device.cpp.

References profinet::io::IoSignalCatalog::FromGsdml(), profinet::io::IsReservedSignal(), profinet::io::IoSignal::name, and profinet::io::IoSignal::textId.

+ Here is the call graph for this function:

◆ TEST_F() [5/52]

profinet::gsdml::TEST_F ( GsdmlRealDeviceTest  ,
AumaCatalogSignalsHaveValueClassification   
)
Test:
Verify that every real AUMA signal has a supported connector value classification.

Definition at line 1005 of file test_gsdml_real_device.cpp.

References profinet::io::IoSignalCatalog::FromGsdml(), profinet::io::IoSignal::gsdmlDataType, profinet::io::IoSignal::name, profinet::io::Unsupported, and profinet::io::IoSignal::valueType.

+ Here is the call graph for this function:

◆ TEST_F() [6/52]

profinet::gsdml::TEST_F ( GsdmlRealDeviceTest  ,
AumaCommandBitsHaveCorrectByteAndBitOffsets   
)
Test:
Verify AUMA CMD BitDataItems map to the correct process-data byte and bit.

Definition at line 1171 of file test_gsdml_real_device.cpp.

References profinet::io::IoSignal::bitOffset, profinet::io::IoSignal::byteLength, profinet::io::IoSignal::byteOffset, profinet::io::IoSignalCatalog::FromGsdml(), profinet::io::IoSignal::parentDataItemByteOffset, and profinet::io::IoSignal::parentDataItemTextId.

+ Here is the call graph for this function:

◆ TEST_F() [7/52]

profinet::gsdml::TEST_F ( GsdmlRealDeviceTest  ,
AumaCyclicIoLengthsMatchConfiguredModules   
)
Test:
Verify that the AUMA status and control modules expose the data lengths consumed by the cyclic IO configuration.

Definition at line 716 of file test_gsdml_real_device.cpp.

◆ TEST_F() [8/52]

profinet::gsdml::TEST_F ( GsdmlRealDeviceTest  ,
AumaInputDataItemsMatchReportedLength   
)
Test:
Verify that every AUMA module's parsed input data-item lengths sum to the reported input length.

Definition at line 568 of file test_gsdml_real_device.cpp.

References length.

◆ TEST_F() [9/52]

profinet::gsdml::TEST_F ( GsdmlRealDeviceTest  ,
AumaLogByteCreatesEightBitSignals   
)
Test:
Verify that the AUMA LOG byte is expanded into eight logical sensor signals.

Definition at line 1137 of file test_gsdml_real_device.cpp.

References profinet::io::IoSignal::bitOffset, profinet::io::Boolean, profinet::io::IoSignal::byteOffset, profinet::io::IoSignalCatalog::FromGsdml(), profinet::io::IoSignal::IsBitSignal(), profinet::io::IoSignal::parentDataItemTextId, profinet::io::IoSignal::textId, and profinet::io::IoSignal::valueType.

+ Here is the call graph for this function:

◆ TEST_F() [10/52]

profinet::gsdml::TEST_F ( GsdmlRealDeviceTest  ,
AumaOutputDataItemsMatchReportedLength   
)
Test:
Verify that every AUMA module's parsed output data-item lengths sum to the reported output length.

Definition at line 594 of file test_gsdml_real_device.cpp.

References length.

◆ TEST_F() [11/52]

profinet::gsdml::TEST_F ( GsdmlRealDeviceTest  ,
AumaRepeatedParsingProducesSameMetadata   
)
Test:
Verify that the real AUMA GSDML can be parsed repeatedly without changing the resulting device metadata.

Definition at line 749 of file test_gsdml_real_device.cpp.

References ParseGsdml().

+ Here is the call graph for this function:

◆ TEST_F() [12/52]

profinet::gsdml::TEST_F ( GsdmlRealDeviceTest  ,
AumaSensorSignalsUseStatusSubmodule   
)
Test:
Verify AUMA input signals originate from the expected status process-data submodule.

Definition at line 912 of file test_gsdml_real_device.cpp.

References profinet::io::IoSignalCatalog::FromGsdml(), profinet::io::IoSignal::moduleId, profinet::io::IoSignal::moduleIdentNumber, profinet::io::IoSignal::possibleSlots, profinet::io::IoSignal::possibleSubslots, profinet::io::IoSignal::submoduleId, and profinet::io::IoSignal::submoduleIdentNumber.

+ Here is the call graph for this function:

◆ TEST_F() [13/52]

profinet::gsdml::TEST_F ( GsdmlRealDeviceTest  ,
AumaSignalsMatchGeneratedIoSlots   
)
Test:
Verify the real AUMA signal catalogue agrees with BuildIoSlots().

Definition at line 1064 of file test_gsdml_real_device.cpp.

References profinet::io::IoSignal::byteLength, profinet::io::IoSignal::byteOffset, profinet::io::IoSignalCatalog::FromGsdml(), profinet::io::IoSignal::moduleId, profinet::io::IoSignal::moduleIdentNumber, and profinet::io::IoSignal::submoduleIdentNumber.

+ Here is the call graph for this function:

◆ TEST_F() [14/52]

profinet::gsdml::TEST_F ( GsdmlRealDeviceTest  ,
AumaSignalsStayWithinProcessDataLengths   
)
Test:
Verify that every real AUMA signal fits inside its parsed submodule process-data area.

Definition at line 956 of file test_gsdml_real_device.cpp.

References profinet::io::IoSignal::byteLength, profinet::io::IoSignal::byteOffset, profinet::io::IoSignalCatalog::FromGsdml(), profinet::io::IoSignal::name, and profinet::io::IoSignal::submoduleId.

+ Here is the call graph for this function:

◆ TEST_F() [15/52]

profinet::gsdml::TEST_F ( GsdmlRealDeviceTest  ,
BuildIoSlotsIsDeterministic   
)
Test:
Verify that resolving the same Phoenix GSDML more than once produces an identical IOSlot configuration.

Definition at line 548 of file test_gsdml_real_device.cpp.

◆ TEST_F() [16/52]

profinet::gsdml::TEST_F ( GsdmlRealDeviceTest  ,
BuildIoSlotsMatchesExpectedInputLengths   
)
Test:
Verify that generated AUMA IOSlots have the expected input lengths.

Definition at line 274 of file test_gsdml_real_device.cpp.

◆ TEST_F() [17/52]

profinet::gsdml::TEST_F ( GsdmlRealDeviceTest  ,
BuildIoSlotsMatchesExpectedInputOutputLengths   
)
Test:
Verify that generated AUMA IOSlots expose the expected input/output lengths.

Definition at line 805 of file test_gsdml_real_device.cpp.

◆ TEST_F() [18/52]

profinet::gsdml::TEST_F ( GsdmlRealDeviceTest  ,
BuildIoSlotsMatchesExpectedOutputLengths   
)
Test:
Verify that generated AUMA IOSlots have the expected output lengths.

Definition at line 292 of file test_gsdml_real_device.cpp.

◆ TEST_F() [19/52]

profinet::gsdml::TEST_F ( GsdmlRealDeviceTest  ,
BuildIoSlotsMatchesExpectedSlots   
)
Test:
Verify that BuildIoSlots produces the expected AUMA slot/subslot layout.

Definition at line 768 of file test_gsdml_real_device.cpp.

◆ TEST_F() [20/52]

profinet::gsdml::TEST_F ( GsdmlRealDeviceTest  ,
BuildIoSlotsProducesExpectedModuleIdents   
)
Test:
Verify that generated AUMA IOSlots contain the expected module idents.

Definition at line 307 of file test_gsdml_real_device.cpp.

◆ TEST_F() [21/52]

profinet::gsdml::TEST_F ( GsdmlRealDeviceTest  ,
BuildsAumaIoSignalCatalog   
)
Test:
Verify that the real AUMA GSDML produces a non-empty logical signal catalogue.

Definition at line 884 of file test_gsdml_real_device.cpp.

References profinet::io::IoSignal::byteLength, profinet::io::IoSignalCatalog::FromGsdml(), profinet::io::IoSignal::IsActuator(), profinet::io::IoSignal::IsSensor(), profinet::io::IoSignal::name, and profinet::io::IoSignal::submoduleId.

+ Here is the call graph for this function:

◆ TEST_F() [22/52]

profinet::gsdml::TEST_F ( GsdmlRealDeviceTest  ,
BuildsPhoenixDefaultIoSlotConfiguration   
)
Test:
Verify that the Phoenix Contact default GSDML configuration resolves the selected module and all DAP/PDEV submodules into IOSlots.

Definition at line 341 of file test_gsdml_real_device.cpp.

◆ TEST_F() [23/52]

profinet::gsdml::TEST_F ( GsdmlRealDeviceTest  ,
BuildsPhoenixIoSignalCatalog   
)
Test:
Verify that the Phoenix real GSDML can also be converted to a signal catalogue.

Definition at line 1027 of file test_gsdml_real_device.cpp.

References profinet::io::IoSignal::byteLength, profinet::io::IoSignalCatalog::FromGsdml(), profinet::io::IoSignal::name, and profinet::io::IoSignal::submoduleId.

+ Here is the call graph for this function:

◆ TEST_F() [24/52]

profinet::gsdml::TEST_F ( GsdmlRealDeviceTest  ,
ExplicitConfigurationRejectsDisallowedSubslot   
)
Test:
Verify that an explicitly selected Phoenix submodule must be allowed in the requested subslot.

Definition at line 538 of file test_gsdml_real_device.cpp.

◆ TEST_F() [25/52]

profinet::gsdml::TEST_F ( GsdmlRealDeviceTest  ,
ExplicitConfigurationRejectsUnknownModule   
)
Test:
Verify that an unknown module identifier is rejected while resolving an explicit GSDML configuration.

Definition at line 518 of file test_gsdml_real_device.cpp.

◆ TEST_F() [26/52]

profinet::gsdml::TEST_F ( GsdmlRealDeviceTest  ,
ExplicitConfigurationRejectsUnknownSubmodule   
)
Test:
Verify that an unknown submodule identifier is rejected while resolving an explicit GSDML configuration.

Definition at line 528 of file test_gsdml_real_device.cpp.

◆ TEST_F() [27/52]

profinet::gsdml::TEST_F ( GsdmlRealDeviceTest  ,
ExplicitModuleAssignmentRejectsDisallowedPhoenixSlot   
)
Test:
Verify that a module cannot be explicitly assigned to a slot outside its AllowedInSlots declaration.

Definition at line 508 of file test_gsdml_real_device.cpp.

◆ TEST_F() [28/52]

profinet::gsdml::TEST_F ( GsdmlRealDeviceTest  ,
FindsActuatorControlModule   
)
Test:
Verify that the AUMA actuator control module is present.

Definition at line 210 of file test_gsdml_real_device.cpp.

◆ TEST_F() [29/52]

profinet::gsdml::TEST_F ( GsdmlRealDeviceTest  ,
FindsActuatorStatusModule   
)
Test:
Verify that the AUMA actuator status module is present.

Definition at line 200 of file test_gsdml_real_device.cpp.

◆ TEST_F() [30/52]

profinet::gsdml::TEST_F ( GsdmlRealDeviceTest  ,
FindsDap   
)
Test:
Verify that the AUMA Device Access Point is parsed correctly.

Definition at line 191 of file test_gsdml_real_device.cpp.

◆ TEST_F() [31/52]

profinet::gsdml::TEST_F ( GsdmlRealDeviceTest  ,
FindsPhoenixDap   
)
Test:
Verify that the Phoenix GSDML exposes the DAP module correctly.

Definition at line 334 of file test_gsdml_real_device.cpp.

◆ TEST_F() [32/52]

profinet::gsdml::TEST_F ( GsdmlRealDeviceTest  ,
FindsPhoenixIoModule   
)
Test:
Verify that the Phoenix Contact PNSlot1 module is parsed.

Definition at line 325 of file test_gsdml_real_device.cpp.

◆ TEST_F() [33/52]

profinet::gsdml::TEST_F ( GsdmlRealDeviceTest  ,
ParsesAumaBitDataItems   
)
Test:
Verify that the AUMA GSDML parser preserves BitDataItem definitions.

Definition at line 1104 of file test_gsdml_real_device.cpp.

◆ TEST_F() [34/52]

profinet::gsdml::TEST_F ( GsdmlRealDeviceTest  ,
ParsesAumaGsdml   
)
Test:
Verify that the AUMA SGx GSDML can be parsed successfully.

Definition at line 163 of file test_gsdml_real_device.cpp.

◆ TEST_F() [35/52]

profinet::gsdml::TEST_F ( GsdmlRealDeviceTest  ,
ParsesControlOutputLength   
)
Test:
Verify that the AUMA control submodule contains 16 output bytes.

Definition at line 234 of file test_gsdml_real_device.cpp.

◆ TEST_F() [36/52]

profinet::gsdml::TEST_F ( GsdmlRealDeviceTest  ,
ParsesControlSubmoduleIdent   
)
Test:
Verify the AUMA actuator control submodule ident number.

Definition at line 261 of file test_gsdml_real_device.cpp.

◆ TEST_F() [37/52]

profinet::gsdml::TEST_F ( GsdmlRealDeviceTest  ,
ParsesDeviceId   
)
Test:
Verify that the AUMA device ID is parsed correctly.

Definition at line 185 of file test_gsdml_real_device.cpp.

◆ TEST_F() [38/52]

profinet::gsdml::TEST_F ( GsdmlRealDeviceTest  ,
ParsesPhoenixGsdml   
)
Test:
Verify that the Phoenix Contact AXC-F-1252 GSDML can be parsed.

Definition at line 171 of file test_gsdml_real_device.cpp.

◆ TEST_F() [39/52]

profinet::gsdml::TEST_F ( GsdmlRealDeviceTest  ,
ParsesStatusInputLength   
)
Test:
Verify that the AUMA status submodule contains 34 input bytes.

Definition at line 220 of file test_gsdml_real_device.cpp.

◆ TEST_F() [40/52]

profinet::gsdml::TEST_F ( GsdmlRealDeviceTest  ,
ParsesStatusSubmoduleIdent   
)
Test:
Verify the AUMA actuator status submodule ident number.

Definition at line 248 of file test_gsdml_real_device.cpp.

◆ TEST_F() [41/52]

profinet::gsdml::TEST_F ( GsdmlRealDeviceTest  ,
ParsesVendorId   
)
Test:
Verify that the AUMA vendor ID is parsed correctly.

Definition at line 179 of file test_gsdml_real_device.cpp.

◆ TEST_F() [42/52]

profinet::gsdml::TEST_F ( GsdmlRealDeviceTest  ,
PhoenixApplicationRelationsExposeTimingProperties   
)
Test:
Verify that the Phoenix Contact ApplicationRelations timing properties are parsed and available to the controller configuration.

Definition at line 427 of file test_gsdml_real_device.cpp.

◆ TEST_F() [43/52]

profinet::gsdml::TEST_F ( GsdmlRealDeviceTest  ,
PhoenixCatalogExcludesReservedSignals   
)
Test:
Verify Phoenix signals do not expose reserved process-data entries.

Definition at line 1049 of file test_gsdml_real_device.cpp.

References profinet::io::IoSignalCatalog::FromGsdml(), profinet::io::IsReservedSignal(), profinet::io::IoSignal::name, and profinet::io::IoSignal::textId.

+ Here is the call graph for this function:

◆ TEST_F() [44/52]

profinet::gsdml::TEST_F ( GsdmlRealDeviceTest  ,
PhoenixDapVirtualSubmoduleBuildsSlotZero   
)
Test:
Verify that the Phoenix Contact DAP virtual submodule is resolved into the standard slot-zero/subslot-one representation used by BuildIoSlots.

Definition at line 445 of file test_gsdml_real_device.cpp.

◆ TEST_F() [45/52]

profinet::gsdml::TEST_F ( GsdmlRealDeviceTest  ,
PhoenixDefaultSubmoduleResolvesToPnio512512   
)
Test:
Verify that the Phoenix Contact selected global submodule is PNIO512512 and therefore provides 512 input and output bytes.

Definition at line 384 of file test_gsdml_real_device.cpp.

◆ TEST_F() [46/52]

profinet::gsdml::TEST_F ( GsdmlRealDeviceTest  ,
PhoenixExplicitPluggedConfigurationOverridesDefault   
)
Test:
Verify that an explicit Phoenix Contact module/submodule selection overrides the GSDML's default UsedInSubslots selection.

Definition at line 491 of file test_gsdml_real_device.cpp.

◆ TEST_F() [47/52]

profinet::gsdml::TEST_F ( GsdmlRealDeviceTest  ,
PhoenixFixedModuleResolvesToSlotOne   
)
Test:
Verify that the Phoenix Contact fixed/used module resolves to slot 1.

Definition at line 368 of file test_gsdml_real_device.cpp.

◆ TEST_F() [48/52]

profinet::gsdml::TEST_F ( GsdmlRealDeviceTest  ,
PhoenixInputDataItemsMatchReportedLength   
)
Test:
Verify that every Phoenix Contact global submodule's input data-item lengths sum to the parser's reported input length.

Definition at line 620 of file test_gsdml_real_device.cpp.

References length.

◆ TEST_F() [49/52]

profinet::gsdml::TEST_F ( GsdmlRealDeviceTest  ,
PhoenixInterfaceSubmoduleBuildsAtPdevSubslot   
)
Test:
Verify that the Phoenix Contact system-defined PDEV interface submodule is retained in the resolved IOSlot configuration.

Definition at line 461 of file test_gsdml_real_device.cpp.

◆ TEST_F() [50/52]

profinet::gsdml::TEST_F ( GsdmlRealDeviceTest  ,
PhoenixModuleReferenceContainsUsedSubslot   
)
Test:
Verify that the Phoenix Contact module references contain an explicit UsedInSubslots selection for the default PNSlot1 configuration.

Definition at line 402 of file test_gsdml_real_device.cpp.

◆ TEST_F() [51/52]

profinet::gsdml::TEST_F ( GsdmlRealDeviceTest  ,
PhoenixOutputDataItemsMatchReportedLength   
)
Test:
Verify that every Phoenix Contact global submodule's output data-item lengths sum to the parser's reported output length.

Definition at line 640 of file test_gsdml_real_device.cpp.

References length.

◆ TEST_F() [52/52]

profinet::gsdml::TEST_F ( GsdmlRealDeviceTest  ,
PhoenixPortSubmoduleBuildsAtPdevSubslot   
)
Test:
Verify that the Phoenix Contact PDEV port submodule is retained in the resolved IOSlot configuration.

Definition at line 476 of file test_gsdml_real_device.cpp.