|
PROFINET IO Controller Stack 1.0.0
Modern C++ implementation of a PROFINET IO Controller stack
|
Any diagnosis entry (USI 0x8000, 0x8002, or 0x8003). More...
#include <diagnosis.h>
Collaboration diagram for profinet::diagnosis::AnyChannelDiagnosis:Public Member Functions | |
| bool | IsChannelDiagnosis () const |
| Whether this is the plain ChannelDiagnosis variant. | |
| bool | IsExtChannelDiagnosis () const |
| Whether this is the ExtChannelDiagnosis variant. | |
| bool | IsQualifiedChannelDiagnosis () const |
| Whether this is the QualifiedChannelDiagnosis variant. | |
| bool | operator== (const AnyChannelDiagnosis &) const =default |
| Compares two AnyChannelDiagnosis for equality. | |
Public Attributes | |
| std::uint16_t | usi = 0 |
| The USI that determined which entry type was parsed. | |
| ChannelDiagnosis | base |
| Common fields, always populated. | |
| std::optional< ExtChannelDiagnosis > | ext |
| Extended fields, populated only for USI 0x8002/0x8003. | |
| std::optional< QualifiedChannelDiagnosis > | qualified |
| Qualified fields, populated only for USI 0x8003. | |
Any diagnosis entry (USI 0x8000, 0x8002, or 0x8003).
Use std::visit or downcasts – the Usi field identifies which type is active (0x8000, 0x8002, 0x8003, or 0 for the base ChannelDiagnosis used for unknown USIs).
Definition at line 236 of file diagnosis.h.
|
inline |
Whether this is the plain ChannelDiagnosis variant.
Definition at line 254 of file diagnosis.h.
References profinet::Bit15OfChannelNumber, and usi.
|
inline |
Whether this is the ExtChannelDiagnosis variant.
Definition at line 261 of file diagnosis.h.
References profinet::Bit15AndExternalChannelDiagnosisOfChannelNumber, and usi.
|
inline |
Whether this is the QualifiedChannelDiagnosis variant.
Definition at line 268 of file diagnosis.h.
References profinet::Bit15AndQualifiedChannelDiagnosisOfChannelNumber, and usi.
|
default |
Compares two AnyChannelDiagnosis for equality.
Two AnyChannelDiagnosis are equal when all scalar configuration fields are equal.
| ChannelDiagnosis profinet::diagnosis::AnyChannelDiagnosis::base |
Common fields, always populated.
For Ext/Qualified entries, the same base fields are also set on Ext and Qualified respectively.
Definition at line 244 of file diagnosis.h.
Referenced by profinet::diagnosis::ParseDiagnosisBlock(), and profinet::diagnosis::ParseDiagnosisSimple().
| std::optional<ExtChannelDiagnosis> profinet::diagnosis::AnyChannelDiagnosis::ext |
Extended fields, populated only for USI 0x8002/0x8003.
Definition at line 247 of file diagnosis.h.
Referenced by profinet::diagnosis::ParseDiagnosisBlock().
| std::optional<QualifiedChannelDiagnosis> profinet::diagnosis::AnyChannelDiagnosis::qualified |
Qualified fields, populated only for USI 0x8003.
Definition at line 250 of file diagnosis.h.
Referenced by profinet::diagnosis::ParseDiagnosisBlock().
| std::uint16_t profinet::diagnosis::AnyChannelDiagnosis::usi = 0 |
The USI that determined which entry type was parsed.
Definition at line 239 of file diagnosis.h.
Referenced by IsChannelDiagnosis(), IsExtChannelDiagnosis(), IsQualifiedChannelDiagnosis(), profinet::diagnosis::ParseDiagnosisBlock(), and profinet::diagnosis::ParseDiagnosisSimple().