PROFINET IO Controller Stack 1.0.0
Modern C++ implementation of a PROFINET IO Controller stack
Loading...
Searching...
No Matches
blocks.h File Reference

Declares PROFINET IO connection-management block structures and wire serialization. More...

#include <array>
#include <cstdint>
#include <optional>
#include <string>
#include <vector>
#include "profinet/protocol.h"
+ Include dependency graph for blocks.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  profinet::blocks::BlockHeader
 PROFINET block header (6 bytes). More...
 
struct  profinet::blocks::SlotInfo
 Slot/subslot discovered from a device. More...
 
struct  profinet::blocks::PeerInfo
 LLDP peer information from PDPortDataReal. More...
 
struct  profinet::blocks::PortInfo
 Port information from PDPortDataReal (0x020F). More...
 
struct  profinet::blocks::InterfaceInfo
 Interface information from PDInterfaceDataReal (0x0240). More...
 
struct  profinet::blocks::PDRealData
 Parsed PDRealData (0xF841) structure. More...
 
struct  profinet::blocks::RealIdentificationData
 Parsed RealIdentificationData (0xF000/0x0013) structure. More...
 
struct  profinet::blocks::PortStatistics
 Parsed PDPortStatistic (0x0251) counters. More...
 
struct  profinet::blocks::ModuleDiffSubmodule
 Difference info for a single submodule. More...
 
struct  profinet::blocks::ModuleDiffModule
 Difference info for a single module (slot). More...
 
struct  profinet::blocks::ModuleDiffBlock
 Parsed ModuleDiffBlock (0x8104). More...
 
struct  profinet::blocks::WriteMultipleResult
 Result of a single write within a WriteMultiple operation. More...
 
class  profinet::blocks::IODWriteMultipleBuilder
 Builder for IODWriteMultipleReq packets (index 0xE040). More...
 
struct  profinet::blocks::IODWriteMultipleBuilder::Write
 One queued write operation. More...
 
struct  profinet::blocks::ExpectedSubmoduleDataDescription
 Describes I/O data for a submodule (one direction: Input or Output). More...
 
struct  profinet::blocks::ExpectedSubmodule
 Expected submodule within a slot. More...
 
struct  profinet::blocks::ExpectedSubmoduleSlot
 One slot with in an api submodule. More...
 
struct  profinet::blocks::ExpectedSubmoduleAPI
 Expected submodules for a specific API/slot. More...
 
class  profinet::blocks::ExpectedSubmoduleBlockReq
 ExpectedSubmoduleBlockReq (0x0104) builder. More...
 

Namespaces

namespace  profinet
 
namespace  profinet::blocks
 

Enumerations

enum class  profinet::blocks::ModuleType : std::uint16_t { profinet::blocks::None = 0 , profinet::blocks::InputOnly = 1 , profinet::blocks::OutputOnly = 2 , profinet::blocks::InputAndOutput = 3 }
 

Functions

std::pair< BlockHeader, std::size_t > profinet::blocks::ParseBlockHeader (const Bytes &data, std::size_t offset=0)
 Parse a 6-byte PROFINET block header at an offset.
 
std::size_t profinet::blocks::Align4 (std::size_t offset)
 Round an offset up to the next 4-byte boundary.
 
std::tuple< std::uint32_t, std::uint16_t, std::uint16_t, std::size_t > profinet::blocks::ParseMultipleBlockHeader (const Bytes &data, std::size_t offset=0)
 Parse a MultipleBlockHeader (0x0400) body.
 
InterfaceInfo profinet::blocks::ParsePdInterfaceDataReal (const Bytes &data, std::size_t offset=0, std::size_t blockHeaderSize=blockHeaderLenght)
 Parse a PDInterfaceDataReal (0x0240) block body.
 
PortInfo profinet::blocks::ParsePdPortDataReal (const Bytes &data, std::size_t offset=0, std::uint16_t slot=0, std::uint16_t subslot=0)
 Parse a PDPortDataReal (0x020F) block body.
 
PDRealData profinet::blocks::ParsePdRealData (const Bytes &data)
 Parse a complete PDRealData (0xF841) response.
 
RealIdentificationData profinet::blocks::ParseRealIdentificationData (const Bytes &data)
 Parse a RealIdentificationData (0xF000 or 0x0013) response.
 
std::optional< PortStatisticsprofinet::blocks::ParsePortStatistics (const Bytes &data, std::size_t offset=0)
 Parse a PDPortStatistic (0x0251) block body.
 
ModuleDiffBlock profinet::blocks::ParseModuleDiffBlock (const Bytes &data)
 Parse a ModuleDiffBlock (0x8104) from raw bytes.
 
std::vector< WriteMultipleResultprofinet::blocks::ParseWriteMultipleResponse (const Bytes &data)
 Parse an IODWriteMultipleRes into individual per-write results.
 

Detailed Description

Declares PROFINET IO connection-management block structures and wire serialization.

Definition in file blocks.h.