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