11 #include "Arp/System/Nm/SpecializedPayload.hpp"
15 namespace Arp {
namespace Plc {
namespace Commons {
namespace Domain
20 namespace
Arp {
namespace System {
namespace NmPayload {
namespace Plc
37 using SpecializedPayload::SpecializedPayload;
54 using PayloadFieldType = std::underlying_type<PlcState>::type;
57 static String PlcStateToString(PayloadFieldType plcState);
58 static String MaskedPlcStateToString(PayloadFieldType maskedPlcState);
59 static String GetFlagsDescriptions(PayloadFieldType plcState);
60 static String AppendFlagDescription(
const String& description,
const String& flagDescription);
61 static bool IsFlagSet(PayloadFieldType plcState, PayloadFieldType flag);
65 size_t indexLastState = this->AddField<PayloadFieldType>();
66 size_t indexNewState = this->AddField<PayloadFieldType>();
Payload class for state changes of the PLC
Definition: PlcStateChangedPayload.hpp:30
PlcStateChangedPayload(const ArgumentsType &args)
Creates a payload lobject
PlcStateChangedPayload(PlcState lastState, PlcState newState)
Creates a payload lobject
PlcState GetLastState() const
Retruns the last state of the PLC
PlcState GetNewState() const
Returns the new state of the PLC
std::tuple< PlcState, PlcState > ArgumentsType
ArgumentsType to be used with NonBlockingNotificationRegistration3
Definition: PlcStateChangedPayload.hpp:35
Base class for custom Payload classes
Definition: SpecializedPayload.hpp:43
std::uint32_t uint32
The Arp unsigned integer type of 4 byte size.
Definition: PrimitiveTypes.hpp:35
PlcState
Definition: PlcState.hpp:14
@ System
System components used by the System, Device, Plc or Io domains.
Root namespace for the PLCnext API