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

DREP-aware fields we need out of a raw incoming RPC request; PROFINET block payloads inside the NRD body are always big-endian regardless of DREP, but the RPC/NRD header fields follow the DREP byte order. More...

#include <rpcTypes.h>

+ Collaboration diagram for profinet::rpc::raw::RawRpcHeader:

Public Attributes

std::uint8_t version {}
 RPC protocol version.
 
std::uint8_t packetType {}
 RPC packet type, such as request or response.
 
std::uint8_t flags1 {}
 First RPC flags byte.
 
std::uint8_t flags2 {}
 Second RPC flags byte.
 
std::uint8_t serialHigh {}
 High byte of the RPC serial number.
 
std::array< std::uint8_t, 3 > drep {}
 Data Representation (DREP) bytes.
 
std::array< std::uint8_t, uuidLenght > objectUuid {}
 Raw object UUID bytes.
 
std::array< std::uint8_t, uuidLenght > interfaceUuid {}
 Raw interface UUID bytes.
 
std::array< std::uint8_t, uuidLenght > activityUuid {}
 Raw activity UUID bytes.
 
std::uint32_t interfaceVersion {}
 RPC interface version.
 
std::uint32_t sequenceNumber {}
 RPC sequence number.
 
std::uint16_t operationNumber {}
 RPC operation number.
 
std::uint8_t serialLow {}
 Low byte of the RPC serial number.
 
bool isLittleEndian {}
 True when RPC scalar fields use little-endian byte order.
 
Bytes payload
 Remaining bytes after the fixed RPC header.
 

Static Public Attributes

static constexpr std::uint8_t kLittleEndianDrepFlag = 0x10U
 DREP flag indicating little-endian byte order.
 

Detailed Description

DREP-aware fields we need out of a raw incoming RPC request; PROFINET block payloads inside the NRD body are always big-endian regardless of DREP, but the RPC/NRD header fields follow the DREP byte order.

Definition at line 310 of file rpcTypes.h.

Member Data Documentation

◆ activityUuid

std::array<std::uint8_t, uuidLenght> profinet::rpc::raw::RawRpcHeader::activityUuid {}

Raw activity UUID bytes.

Definition at line 342 of file rpcTypes.h.

Referenced by profinet::rpc::raw::ParseRawRpcHeader().

◆ drep

std::array<std::uint8_t, 3> profinet::rpc::raw::RawRpcHeader::drep {}

Data Representation (DREP) bytes.

The first byte contains the byte-order flag used by RPC scalar fields.

Definition at line 333 of file rpcTypes.h.

Referenced by profinet::rpc::raw::ParseRawRpcHeader().

◆ flags1

std::uint8_t profinet::rpc::raw::RawRpcHeader::flags1 {}

First RPC flags byte.

Definition at line 322 of file rpcTypes.h.

Referenced by profinet::rpc::raw::ParseRawRpcHeader().

◆ flags2

std::uint8_t profinet::rpc::raw::RawRpcHeader::flags2 {}

Second RPC flags byte.

Definition at line 325 of file rpcTypes.h.

Referenced by profinet::rpc::raw::ParseRawRpcHeader().

◆ interfaceUuid

std::array<std::uint8_t, uuidLenght> profinet::rpc::raw::RawRpcHeader::interfaceUuid {}

Raw interface UUID bytes.

Definition at line 339 of file rpcTypes.h.

Referenced by profinet::rpc::raw::ParseRawRpcHeader().

◆ interfaceVersion

std::uint32_t profinet::rpc::raw::RawRpcHeader::interfaceVersion {}

RPC interface version.

Definition at line 345 of file rpcTypes.h.

Referenced by profinet::rpc::raw::ParseRawRpcHeader().

◆ isLittleEndian

bool profinet::rpc::raw::RawRpcHeader::isLittleEndian {}

True when RPC scalar fields use little-endian byte order.

Definition at line 357 of file rpcTypes.h.

Referenced by profinet::rpc::raw::ParseRawRpcHeader().

◆ kLittleEndianDrepFlag

constexpr std::uint8_t profinet::rpc::raw::RawRpcHeader::kLittleEndianDrepFlag = 0x10U
staticconstexpr

DREP flag indicating little-endian byte order.

Definition at line 313 of file rpcTypes.h.

Referenced by profinet::rpc::RPCCon::EpmLookup(), and profinet::rpc::raw::ParseRawRpcHeader().

◆ objectUuid

std::array<std::uint8_t, uuidLenght> profinet::rpc::raw::RawRpcHeader::objectUuid {}

Raw object UUID bytes.

Definition at line 336 of file rpcTypes.h.

Referenced by profinet::rpc::raw::ParseRawRpcHeader().

◆ operationNumber

std::uint16_t profinet::rpc::raw::RawRpcHeader::operationNumber {}

RPC operation number.

Definition at line 351 of file rpcTypes.h.

Referenced by profinet::rpc::raw::ParseRawRpcHeader().

◆ packetType

std::uint8_t profinet::rpc::raw::RawRpcHeader::packetType {}

RPC packet type, such as request or response.

Definition at line 319 of file rpcTypes.h.

Referenced by profinet::rpc::raw::ParseRawRpcHeader().

◆ payload

Bytes profinet::rpc::raw::RawRpcHeader::payload

Remaining bytes after the fixed RPC header.

PROFINET block payloads contained in the RPC body are parsed separately as big-endian wire data.

Definition at line 363 of file rpcTypes.h.

Referenced by profinet::rpc::raw::ParseRawRpcHeader().

◆ sequenceNumber

std::uint32_t profinet::rpc::raw::RawRpcHeader::sequenceNumber {}

RPC sequence number.

Definition at line 348 of file rpcTypes.h.

Referenced by profinet::rpc::raw::ParseRawRpcHeader().

◆ serialHigh

std::uint8_t profinet::rpc::raw::RawRpcHeader::serialHigh {}

High byte of the RPC serial number.

Definition at line 328 of file rpcTypes.h.

Referenced by profinet::rpc::raw::ParseRawRpcHeader().

◆ serialLow

std::uint8_t profinet::rpc::raw::RawRpcHeader::serialLow {}

Low byte of the RPC serial number.

Definition at line 354 of file rpcTypes.h.

Referenced by profinet::rpc::raw::ParseRawRpcHeader().

◆ version

std::uint8_t profinet::rpc::raw::RawRpcHeader::version {}

RPC protocol version.

Definition at line 316 of file rpcTypes.h.

Referenced by profinet::rpc::raw::ParseRawRpcHeader().


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