|
PROFINET IO Controller Stack 1.0.0
Modern C++ implementation of a PROFINET IO Controller stack
|
Implements GSDML parsing and PROFINET I/O slot configuration. More...
#include "profinet/gsdml.h"#include <libxml/parser.h>#include <libxml/tree.h>#include <libxml/xpath.h>#include <libxml/xpathInternals.h>#include <algorithm>#include <map>#include <sstream>#include <stdexcept>
Include dependency graph for gsdml.cpp:Go to the source code of this file.
Namespaces | |
| namespace | profinet |
| namespace | profinet::gsdml |
Functions | |
| GSDMLDevice | profinet::gsdml::ParseGsdmlString (const std::string &xml) |
| Parse GSDML content already held in memory. | |
| GSDMLDevice | profinet::gsdml::ParseGsdml (const std::string &path) |
| Parse a GSDML file into a GSDMLDevice. | |
Implements GSDML parsing and PROFINET I/O slot configuration.
Implements the functionality declared in gsdml.h for parsing Generic Station Description Markup Language (GSDML) files and translating the device configuration into the PROFINET I/O structures used by the controller.
The implementation covers:
XML resources are managed using RAII wrappers for libxml2 document and XPath objects. Parsing is designed to tolerate different GSDML namespace versions by matching XML elements using their local names.
Definition in file gsdml.cpp.
| xmlXPathContextPtr ctx = nullptr |
Definition at line 67 of file gsdml.cpp.
Referenced by profinet::gsdml::ParseGsdmlString().
| xmlXPathObjectPtr obj = nullptr |
Definition at line 79 of file gsdml.cpp.
Referenced by profinet::rt::CyclicDataBuilder::GetData(), profinet::cyclic::CyclicController::ProcessInputFrame(), profinet::rt::CyclicDataBuilder::SetAllIocs(), profinet::rt::CyclicDataBuilder::SetAllIops(), profinet::rt::CyclicDataBuilder::SetData(), profinet::rt::CyclicDataBuilder::SetIocs(), and profinet::rt::CyclicDataBuilder::SetIops().