PLCnext API Documentation 24.0.0.71
AlarmPayload.hpp
1
2//
3// Copyright PHOENIX CONTACT Electronics GmbH
4//
6
7#pragma once
8
9
10#include "Arp/System/Core/Arp.h"
11#include "Arp/System/Nm/SpecializedPayload.hpp"
12#include <tuple>
13
14
15namespace Arp { namespace System { namespace NmPayload { namespace Io { namespace ProfinetStack
16{
17
18
22class ARP_CXX_SYMBOL_EXPORT AlarmPayload : public Arp::System::Nm::SpecializedPayload<AlarmPayload>
23{
24public:
26 using ArgumentsType = std::tuple<const char*, const char*, uint16, uint16, uint32, uint32, uint16, bool, bool, bool, bool, const char*>;
27
28 using SpecializedPayload::SpecializedPayload;
29
31 explicit AlarmPayload(const ArgumentsType& args);
32
48 AlarmPayload(const String& alarmType, const String& deviceName, uint16 slotNumber,
49 uint16 subslotNumber, uint32 moduleNumber, uint32 subModuleNumber, uint16 sequenceNumber,
50 bool isChannelDiagnosis, bool isManufacturerSpecificDiagnosis,
51 bool isSubmoduleDiagnosisState, bool isArDiagnosisState, const String& alarmText);
52
55
58
61
64
67
70
73
76
80
83
87
90
91private:
92 // Do not change the order of the field initialization!
93 size_t indexAlarmType = this->AddField<String>();
94 size_t indexDeviceName = this->AddField<String>();
95 size_t indexSlotNumber = this->AddField<uint16>();
96 size_t indexSubslotNumber = this->AddField<uint16>();
97 size_t indexModuleNumber = this->AddField<uint32>();
98 size_t indexSubModuleNumber = this->AddField<uint32>();
99 size_t indexSequenceNumber = this->AddField<uint16>();
100 size_t indexIsChannelDiagnosis = this->AddField<bool>();
101 size_t indexIsManufacturerSpecificDiagnosis = this->AddField<bool>();
102 size_t indexIsSubmoduleDiagnosisState = this->AddField<bool>();
103 size_t indexIsArDiagnosisState = this->AddField<bool>();
104 size_t indexAlarmText = this->AddField<String>();
105};
106
107}}}}} // namespace Arp::System::NmPayload::Io::ProfinetStack
Payload class for a Profinet alarm
Definition: AlarmPayload.hpp:23
uint32 GetSubModuleNumber() const
Returns the sub module number
String GetAlarmType() const
Returns the alarm type
AlarmPayload(const ArgumentsType &args)
Creates a payload object
uint16 GetSlotNumber() const
Returns the slot number
String GetAlarmText() const
Returns the alarm text if available
bool GetIsChannelDiagnosis() const
Returns true if alarm is a channel diagnosis
String GetDeviceName() const
Returns the Profinet device name
uint16 GetSubslotNumber() const
Returns the sub slot number
AlarmPayload(const String &alarmType, const String &deviceName, uint16 slotNumber, uint16 subslotNumber, uint32 moduleNumber, uint32 subModuleNumber, uint16 sequenceNumber, bool isChannelDiagnosis, bool isManufacturerSpecificDiagnosis, bool isSubmoduleDiagnosisState, bool isArDiagnosisState, const String &alarmText)
Creates a payload object
uint16 GetSequenceNumber() const
Returns the sequence number
std::tuple< const char *, const char *, uint16, uint16, uint32, uint32, uint16, bool, bool, bool, bool, const char * > ArgumentsType
ArgumentsType to be used with NonBlockingNotificationRegistration3
Definition: AlarmPayload.hpp:26
bool GetIsArDiagnosisState() const
Return s true if alarm is diagnostic information of the application reference
uint32 GetModuleNumber() const
Returns the module number
bool GetIsManufacturerSpecificDiagnosis() const
Return s true if alarm is manufacturer specific diagnosis
bool GetIsSubmoduleDiagnosisState() const
Return s true if alarm is submodule diagnosis
Base class for custom Payload classes
Definition: SpecializedPayload.hpp:44
std::uint32_t uint32
The Arp unsigned integer type of 4 byte size.
Definition: PrimitiveTypes.hpp:36
std::uint16_t uint16
The Arp unsigned integer type of 2 byte size.
Definition: PrimitiveTypes.hpp:32
Root namespace for the PLCnext API