PLCnext API Documentation 25.0.2.69
AlarmPayload.hpp
1
2//
3// Copyright Phoenix Contact GmbH & Co. KG
4//
6#pragma once
7
9#include "Arp/System/Nm/SpecializedPayload.hpp"
10#include "Arp/Base/Rsc/Commons/RscVariant.hxx"
11#include "Arp/System/NmPayload/Alarms/AlarmState.hpp"
12#include <tuple>
13
14namespace Arp { namespace System { namespace NmPayload { namespace Alarms { namespace Internal
15{
16using namespace Arp::System::Nm;
17using namespace Arp::Base::Rsc::Commons;
18
19class AlarmPayload : public SpecializedPayload<AlarmPayload>
20{
21public: // construction/destruction
23 using ArgumentsType = std::tuple<const char*, const char*, const char*, bool, bool, bool, bool, int16, bool, const char*, const char*, const char*>;
24
25 explicit AlarmPayload(const ArgumentsType& args);
26
27 AlarmPayload(const String& alarmId, const String& alarmType, const String& message, const bool activeState, const bool ackedState, const bool confirmedState, const bool suppressedState, const int16 severity, const bool isRetain, const String& comment, const String& language, const String& user);
28
29 AlarmPayload(const AlarmState& alarmState);
30 explicit AlarmPayload(const Notification& notification);
31
32public: // operators
33public: // static operations
34public: // setter/getter operations
35 AlarmState GetAlarmState() const;
36 String GetAlarmId() const;
37 String GetAlarmType() const;
38 String GetMessage() const;
39 bool GetActiveState() const;
40 DateTime GetActiveStateChanged() const;
41 bool GetAckedState() const;
42 DateTime GetAckedStateChanged() const;
43 bool GetConfirmedState() const;
44 DateTime GetConfirmedStateChanged() const;
45 bool GetSuppressedState() const;
46 DateTime GetSuppressedStateChanged() const;
47 int16 GetSeverity() const;
48 //const int16 GetLastSeverity() const;
49 bool GetRetain() const;
50 DateTime GetRetainChanged() const;
51 DateTime GetAlarmChanged() const;
52 String GetUserParameterName(int index) const;
53 RscVariant<512> GetUserParameterValue(int index) const;
54 String GetComment() const;
55 String GetLanguage() const;
56 String GetUser() const;
57
58public: // operations
59protected: // operations
60private: // static methods
61private: // methods
62
63private: // fields
64 size_t indexAlarmId = this->AddField<String>();
65 size_t indexAlarmType = this->AddField<String>();
66 size_t indexMessage = this->AddField<String>();
67 size_t indexActiveState = this->AddField<bool>();
68 size_t indexAckedState = this->AddField<bool>();
69 size_t indexConfirmedState = this->AddField<bool>();
70 size_t indexSuppressedState = this->AddField<bool>();
71 size_t indexSeverity = this->AddField<short>();
72 size_t indexIsRetain = this->AddField<bool>();
73 size_t indexActiveStateChanged = this->AddField<DateTime>();
74 size_t indexAckedStateChanged = this->AddField<DateTime>();
75 size_t indexConfirmedStateChanged = this->AddField<DateTime>();
76 size_t indexSuppressedStateChanged = this->AddField<DateTime>();
77 size_t indexIsRetainChanged = this->AddField<DateTime>();
78 size_t indexAlarmChanged = this->AddField<DateTime>();
79
80 size_t indexUserParamCount = this->AddField<int16>();
81 size_t indexUserParamName0 = this->AddField<String>();
82 size_t indexUserParamName1 = this->AddField<String>();
83 size_t indexUserParamName2 = this->AddField<String>();
84 size_t indexUserParamName3 = this->AddField<String>();
85 size_t indexUserParamName4 = this->AddField<String>();
86 size_t indexUserParamName5 = this->AddField<String>();
87 size_t indexUserParamName6 = this->AddField<String>();
88 size_t indexUserParamName7 = this->AddField<String>();
89 size_t indexUserParamName8 = this->AddField<String>();
90 size_t indexUserParamName9 = this->AddField<String>();
91 size_t indexUserParamValue0 = this->AddField<RscVariant<512>>();
92 size_t indexUserParamValue1 = this->AddField<RscVariant<512>>();
93 size_t indexUserParamValue2 = this->AddField<RscVariant<512>>();
94 size_t indexUserParamValue3 = this->AddField<RscVariant<512>>();
95 size_t indexUserParamValue4 = this->AddField<RscVariant<512>>();
96 size_t indexUserParamValue5 = this->AddField<RscVariant<512>>();
97 size_t indexUserParamValue6 = this->AddField<RscVariant<512>>();
98 size_t indexUserParamValue7 = this->AddField<RscVariant<512>>();
99 size_t indexUserParamValue8 = this->AddField<RscVariant<512>>();
100 size_t indexUserParamValue9 = this->AddField<RscVariant<512>>();
101
102 //fields added after first publication
103 size_t indexComment = this->AddField<String>();
104 size_t indexLanguage = this->AddField<String>();
105 size_t indexUser = this->AddField<String>();
106
107private: // static fields
108};
109
110}}}}} // namespace Arp::System::NmPayload::Alarms::Internal
111
This class contains date and time informations.
Definition: DateTime.hpp:27
This class represents the Arp String. The implementation is based on std::string.
Definition: String.hpp:39
State with sub states of an alarm.
Definition: AlarmState.hpp:12
std::tuple< const char *, const char *, const char *, bool, bool, bool, bool, int16, bool, const char *, const char *, const char * > ArgumentsType
ArgumentsType to be used with NonBlockingNotificationRegistration3
Definition: AlarmPayload.hpp:23
Contains meta data and paylod of a Notification
Definition: Notification.hpp:20
Base class for custom Payload classes
Definition: SpecializedPayload.hpp:44
std::int16_t int16
The Arp integer type of 2 byte size.
Definition: PrimitiveTypes.hpp:31
Namespace for the NotificationManager
Root namespace for the PLCnext API