|
PROFINET IO Controller Stack 1.0.0
Modern C++ implementation of a PROFINET IO Controller stack
|
ARBlockReq: establishes an Application Relationship (sent in the CONNECT request). More...
#include <protocol.h>
Collaboration diagram for profinet::PNARBlockRequest:Public Member Functions | |
| Bytes | ToBytes () const |
| Serialize this block back to raw bytes. | |
Static Public Member Functions | |
| static PNARBlockRequest | Parse (const Bytes &data) |
| Parse an ARBlockReq from raw bytes. | |
Public Attributes | |
| std::array< std::uint8_t, blockHeaderLenght > | blockHeader {} |
| Nested 6-byte block header. | |
| std::uint16_t | arType = 0 |
| AR type (e.g. IOCARSingle, IOSAR). | |
| std::array< std::uint8_t, uuidLenght > | arUuid {} |
| Unique AR UUID chosen by the initiator (controller). | |
| std::uint16_t | sessionKey = 0 |
| Session key chosen by the initiator. | |
| MacAddress | cmInitiatorMacAddress {} |
| MAC address of the initiating controller. | |
| std::array< std::uint8_t, uuidLenght > | cmInitiatorObjectUuid {} |
| Object UUID of the initiating controller. | |
| std::uint32_t | arProperties = 0 |
| AR property flags (supervisor takeover, device access, etc.). | |
| std::uint16_t | cmInitiatorActivityTimeoutFactor = 0 |
| Activity timeout factor for the initiator. | |
| std::uint16_t | initiatorUdpRtport = 0 |
| UDP port the initiator uses for real-time data. | |
| std::uint16_t | stationNameLength = 0 |
| Length in bytes of CmInitiatorStationName. | |
| Bytes | cmInitiatorStationName |
| Station name of the initiating controller (variable length). | |
| Bytes | payload |
| Additional blocks following this one (IOCR/AlarmCR/ExpectedSubmodule). | |
Static Public Attributes | |
| static constexpr std::size_t | kFixedSize = 58 |
| Size in bytes of the fixed portion of this block. | |
ARBlockReq: establishes an Application Relationship (sent in the CONNECT request).
Definition at line 918 of file protocol.h.
|
inlinestatic |
Parse an ARBlockReq from raw bytes.
| data | Bytes starting at the BlockHeader field. |
Definition at line 962 of file protocol.h.
References arProperties, arType, arUuid, blockHeader, profinet::blockHeaderLenght, cmInitiatorActivityTimeoutFactor, cmInitiatorMacAddress, cmInitiatorObjectUuid, cmInitiatorStationName, profinet::wire::Reader::Fixed(), initiatorUdpRtport, kFixedSize, profinet::macAddressLength, payload, profinet::wire::Reader::ReadBytes(), profinet::wire::Reader::Remaining(), sessionKey, stationNameLength, profinet::wire::Reader::U16(), profinet::wire::Reader::U32(), and profinet::uuidLenght.
Here is the call graph for this function:
|
inline |
Serialize this block back to raw bytes.
Definition at line 987 of file protocol.h.
References arProperties, arType, arUuid, blockHeader, cmInitiatorActivityTimeoutFactor, cmInitiatorMacAddress, cmInitiatorObjectUuid, cmInitiatorStationName, initiatorUdpRtport, payload, profinet::wire::PutFixed(), profinet::wire::PutU16(), profinet::wire::PutU32(), sessionKey, and stationNameLength.
Referenced by profinet::rpc::RPCCon::Connect().
Here is the call graph for this function:
Here is the caller graph for this function:| std::uint32_t profinet::PNARBlockRequest::arProperties = 0 |
AR property flags (supervisor takeover, device access, etc.).
Definition at line 939 of file protocol.h.
Referenced by profinet::rpc::RPCCon::Connect(), Parse(), and ToBytes().
| std::uint16_t profinet::PNARBlockRequest::arType = 0 |
AR type (e.g. IOCARSingle, IOSAR).
Definition at line 924 of file protocol.h.
Referenced by profinet::rpc::RPCCon::Connect(), Parse(), and ToBytes().
| std::array<std::uint8_t, uuidLenght> profinet::PNARBlockRequest::arUuid {} |
Unique AR UUID chosen by the initiator (controller).
Definition at line 927 of file protocol.h.
Referenced by profinet::rpc::RPCCon::Connect(), Parse(), and ToBytes().
| std::array<std::uint8_t, blockHeaderLenght> profinet::PNARBlockRequest::blockHeader {} |
Nested 6-byte block header.
Definition at line 921 of file protocol.h.
Referenced by profinet::rpc::RPCCon::Connect(), Parse(), and ToBytes().
| std::uint16_t profinet::PNARBlockRequest::cmInitiatorActivityTimeoutFactor = 0 |
Activity timeout factor for the initiator.
Definition at line 942 of file protocol.h.
Referenced by profinet::rpc::RPCCon::Connect(), Parse(), and ToBytes().
| MacAddress profinet::PNARBlockRequest::cmInitiatorMacAddress {} |
MAC address of the initiating controller.
Definition at line 933 of file protocol.h.
Referenced by profinet::rpc::RPCCon::Connect(), Parse(), and ToBytes().
| std::array<std::uint8_t, uuidLenght> profinet::PNARBlockRequest::cmInitiatorObjectUuid {} |
Object UUID of the initiating controller.
Definition at line 936 of file protocol.h.
Referenced by profinet::rpc::RPCCon::Connect(), Parse(), and ToBytes().
| Bytes profinet::PNARBlockRequest::cmInitiatorStationName |
Station name of the initiating controller (variable length).
Definition at line 951 of file protocol.h.
Referenced by profinet::rpc::RPCCon::Connect(), Parse(), and ToBytes().
| std::uint16_t profinet::PNARBlockRequest::initiatorUdpRtport = 0 |
UDP port the initiator uses for real-time data.
Definition at line 945 of file protocol.h.
Referenced by profinet::rpc::RPCCon::Connect(), Parse(), and ToBytes().
|
staticconstexpr |
Size in bytes of the fixed portion of this block.
Definition at line 957 of file protocol.h.
Referenced by profinet::rpc::RPCCon::Connect(), and Parse().
| Bytes profinet::PNARBlockRequest::payload |
Additional blocks following this one (IOCR/AlarmCR/ExpectedSubmodule).
Definition at line 954 of file protocol.h.
| std::uint16_t profinet::PNARBlockRequest::sessionKey = 0 |
Session key chosen by the initiator.
Definition at line 930 of file protocol.h.
Referenced by profinet::rpc::RPCCon::Connect(), Parse(), and ToBytes().
| std::uint16_t profinet::PNARBlockRequest::stationNameLength = 0 |
Length in bytes of CmInitiatorStationName.
Definition at line 948 of file protocol.h.
Referenced by profinet::rpc::RPCCon::Connect(), Parse(), and ToBytes().