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

Control block used for Release/PrmBegin/PrmEnd/ApplicationReady/RTClass3 requests. More...

#include <protocol.h>

+ Collaboration diagram for profinet::PNIODReleaseBlock:

Public Member Functions

Bytes ToBytes () const
 Serialize this block back to raw bytes.
 

Static Public Member Functions

static PNIODReleaseBlock Parse (const Bytes &data)
 Parse a control block from raw bytes.
 

Public Attributes

std::array< std::uint8_t, blockHeaderLength > blockHeader {}
 Nested 6-byte block header.
 
std::uint16_t padding1 = 0
 Reserved/padding.
 
std::array< std::uint8_t, uuidLenght > arUuid {}
 AR UUID this control operation applies to.
 
std::uint16_t sessionKey = 0
 Session key matching the AR.
 
std::uint16_t padding2 = 0
 Reserved/padding.
 
ControlCommand controlCommand
 Control command bitmask (PrmEnd/AppReady/Release/Done/...).
 
std::uint16_t controlBlockProperties = 0
 Control block property flags.
 

Static Public Attributes

static constexpr std::size_t kSize = 32
 Size in bytes of this block.
 

Detailed Description

Control block used for Release/PrmBegin/PrmEnd/ApplicationReady/RTClass3 requests.

Definition at line 1448 of file protocol.h.

Member Function Documentation

◆ Parse()

static PNIODReleaseBlock profinet::PNIODReleaseBlock::Parse ( const Bytes &  data)
inlinestatic

Parse a control block from raw bytes.

Parameters
dataBytes starting at the BlockHeader field.
Returns
The parsed block.

Definition at line 1477 of file protocol.h.

References arUuid, blockHeader, profinet::blockHeaderLength, controlBlockProperties, controlCommand, profinet::wire::Reader::Fixed(), kSize, padding1, padding2, sessionKey, profinet::wire::Reader::U16(), and profinet::uuidLenght.

Referenced by profinet::rpc::TEST_F(), profinet::rpc::TEST_F(), profinet::rpc::TEST_F(), profinet::rpc::TEST_F(), profinet::rpc::TEST_F(), profinet::rpc::TEST_F(), and profinet::rpc::TEST_F().

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

◆ ToBytes()

Bytes profinet::PNIODReleaseBlock::ToBytes ( ) const
inline

Serialize this block back to raw bytes.

Returns
The encoded bytes.

Definition at line 1497 of file protocol.h.

References arUuid, blockHeader, controlBlockProperties, controlCommand, padding1, padding2, profinet::wire::PutFixed(), profinet::wire::PutU16(), and sessionKey.

Referenced by profinet::rpc::RPCCon::ApplicationReady(), TestRpcDevice::BuildApplicationReadyRequestPayload(), TestRpcDevice::BuildControlRequestPayload(), profinet::rpc::RPCCon::Disconnect(), profinet::rpc::RpcTests::MakeApplicationReadyControlBlock(), profinet::sim::VirtualProfinetRpcDevice::SendApplicationReady(), and profinet::rpc::RPCCon::SendControl().

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

Member Data Documentation

◆ arUuid

◆ blockHeader

◆ controlBlockProperties

◆ controlCommand

◆ kSize

constexpr std::size_t profinet::PNIODReleaseBlock::kSize = 32
staticconstexpr

◆ padding1

◆ padding2

◆ sessionKey


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