166 [[nodiscard]]
bool IsSensor() const noexcept;
169 [[nodiscard]]
bool IsActuator() const noexcept;
197 [[nodiscard]]
const std::vector<IoSignal>& Sensors()
const noexcept;
200 [[nodiscard]]
const std::vector<IoSignal>& Actuators()
const noexcept;
203 [[nodiscard]] std::size_t Size()
const noexcept;
Builds and owns the logical sensor and actuator signals described by a GSDML device.
std::vector< IoSignal > actuators
std::vector< IoSignal > sensors
Declares the GSDML parser and PROFINET device-description data model.
bool IsReservedSignal(std::string_view textId, std::string_view name) noexcept
Determine whether a DataItem should be hidden from the normal signal catalogue.
IoSignalValueType ClassifyDataType(std::string_view dataType) noexcept
Classify a GSDML DataType into a logical connector value category.
IoSignalValueType
Logical value category used when exposing a signal to higher layers.
@ FloatingPoint
IEEE floating-point value.
@ Boolean
Boolean value, represented by the connector as 0.0 or 1.0.
@ SignedInteger
Signed integer value.
@ UnsignedInteger
Unsigned integer value.
@ Unsupported
Data for which this catalogue does not define a numeric double representation.
IoSignalDirection
Logical direction of a process-data signal from the controller's perspective.
@ Sensor
Data received from the PROFINET device and therefore exposed as a sensor.
@ Actuator
Data sent to the PROFINET device and therefore exposed as an actuator.
Complete parsed GSDML device profile.
One bit-defined logical signal within a GSDML DataItem.
std::string textId
GSDML TextId identifying this logical bit signal.
std::size_t bitOffset
Bit offset within the containing DataItem.
Describes one logical process-data signal available from a GSDML device.
bool IsSensor() const noexcept
Returns whether this signal is an input/sensor.
bool IsDoubleCompatible() const noexcept
Returns whether this signal can be represented by the IO connector's double field.
bool IsActuator() const noexcept
Returns whether this signal is an output/actuator.
std::uint32_t moduleIdentNumber
Module ident number of the containing module.
std::size_t byteLength
Size of the GSDML DataItem in bytes.
std::string submoduleName
Human-readable submodule name, when supplied by the GSDML.
bool IsBitSignal() const noexcept
Returns whether this signal represents one BitDataItem.
std::string gsdmlDataType
GSDML DataType string.
std::size_t bitOffset
Bit offset within the containing DataItem.
std::size_t parentDataItemByteOffset
Byte offset of the parent DataItem.
bool doubleCompatible
Whether the connector can represent this logical value using its double field.
std::string textId
Original GSDML TextId.
std::string submoduleId
GSDML submodule identifier containing the signal.
std::string moduleName
Human-readable module name, when supplied by the GSDML.
std::vector< int > possibleSubslots
Subslots in which the containing submodule may occur, when known.
bool bitSignal
Whether this logical signal originated from a BitDataItem.
std::string parentDataItemTextId
TextId of the parent DataItem.
IoSignalDirection direction
Sensor or actuator direction.
std::uint32_t submoduleIdentNumber
Submodule ident number of the containing submodule.
std::size_t byteOffset
Byte offset within the submodule's input or output process-data area.
IoSignalValueType valueType
Logical value category inferred from gsdmlDataType.
std::string name
Current display name of the signal.
std::vector< int > possibleSlots
Slots in which the containing module may occur, when known.
std::string moduleId
GSDML module identifier containing the signal.