PLCnext API Documentation  22.9.0.33
AlarmPayload2.hpp
1 //
3 // Copyright PHOENIX CONTACT Electronics GmbH
4 //
6 
7 #pragma once
8 
9 
10 #include "Arp/System/Nm/SpecializedPayload.hpp"
11 #include <tuple>
12 
13 
14 namespace Arp { namespace System { namespace NmPayload { namespace Io { namespace ProfinetStack
15 {
16 
17 
21 {
22 public:
24  using ArgumentsType = std::tuple<const char*, uint32, bool, uint16, const char*, uint16, uint16, uint32, uint32, uint16, bool, bool, bool, bool, uint16, const char*, const char*>;
25 
26  using SpecializedPayload::SpecializedPayload;
27 
29  explicit AlarmPayload2(const ArgumentsType& args);
30 
50  AlarmPayload2(const String& deviceName, uint32 api, bool highPriority, uint16 alarmType, const String& alarmTypeName,
51  uint16 slotNumber, uint16 subslotNumber, uint32 moduleNumber, uint32 subModuleNumber, uint16 sequenceNumber,
52  bool isChannelDiagnosis, bool isManufacturerSpecificDiagnosis, bool isSubmoduleDiagnosisState,
53  bool isArDiagnosisState, uint16 userDataStructureIdentifier,
54  const String& userDataStructureIdentifierName, const String& userDataInfo);
55 
58 
60  uint32 GetApi() const;
61 
63  bool IsHighPriority() const;
64 
67 
70 
73 
76 
79 
82 
85 
87  bool GetIsChannelDiagnosis() const;
88 
92 
95 
98  bool GetIsArDiagnosisState() const;
99 
102 
105 
108 
109 private:
110  // Do not change the order of the field initialization!
111  size_t indexDeviceName = this->AddField<String>();
112  size_t indexApi = this->AddField<uint32>();
113  size_t indexHighPriority = this->AddField<bool>();
114  size_t indexAlarmType = this->AddField<uint16>();
115  size_t indexAlarmTypeName = this->AddField<String>();
116  size_t indexSlotNumber = this->AddField<uint16>();
117  size_t indexSubslotNumber = this->AddField<uint16>();
118  size_t indexModuleNumber = this->AddField<uint32>();
119  size_t indexSubModuleNumber = this->AddField<uint32>();
120  size_t indexSequenceNumber = this->AddField<uint16>();
121  size_t indexIsChannelDiagnosis = this->AddField<bool>();
122  size_t indexIsManufacturerSpecificDiagnosis = this->AddField<bool>();
123  size_t indexIsSubmoduleDiagnosisState = this->AddField<bool>();
124  size_t indexIsArDiagnosisState = this->AddField<bool>();
125  size_t indexuserDataStructureIdentifier = this->AddField<uint16>();
126  size_t indexuserDataStructureIdentifierName = this->AddField<String>();
127  size_t indexUserDataInfo = this->AddField<String>();
128 };
129 
130 }}}}} // namespace Arp::System::NmPayload::Io::ProfinetStack
Payload class for a Profinet alarm
Definition: AlarmPayload2.hpp:21
bool GetIsManufacturerSpecificDiagnosis() const
Return s true if alarm is manufacturer specific diagnosis
bool GetIsChannelDiagnosis() const
Returns true if alarm is a channel diagnosis
uint16 GetAlarmType() const
Returns the alarm type
String GetAlarmTypeName() const
Returns the alarm type as string
uint16 GetSequenceNumber() const
Returns the sequence number
String GetDeviceName() const
Returns the Profinet device name
bool GetIsArDiagnosisState() const
Return s true if alarm is diagnostic information of the application reference
uint32 GetModuleNumber() const
Returns the module number
String GetUserDataInfo() const
Returns the User Data Structure as text
bool IsHighPriority() const
Returns true if alarm is high priority
AlarmPayload2(const ArgumentsType &args)
Creates a payload object
uint16 GetUserDataStructureIdentifier() const
Returns the User Data Structure Identifier
bool GetIsSubmoduleDiagnosisState() const
Return s true if alarm is submodule diagnosis
std::tuple< const char *, uint32, bool, uint16, const char *, uint16, uint16, uint32, uint32, uint16, bool, bool, bool, bool, uint16, const char *, const char * > ArgumentsType
ArgumentsType to be used with NonBlockingNotificationRegistration3
Definition: AlarmPayload2.hpp:24
uint16 GetSlotNumber() const
Returns the slot number
AlarmPayload2(const String &deviceName, uint32 api, bool highPriority, uint16 alarmType, const String &alarmTypeName, uint16 slotNumber, uint16 subslotNumber, uint32 moduleNumber, uint32 subModuleNumber, uint16 sequenceNumber, bool isChannelDiagnosis, bool isManufacturerSpecificDiagnosis, bool isSubmoduleDiagnosisState, bool isArDiagnosisState, uint16 userDataStructureIdentifier, const String &userDataStructureIdentifierName, const String &userDataInfo)
Creates a payload object
String GetUserDataStructureIdentifierName() const
Returns the User Data Structure Identifier as string
uint32 GetApi() const
Returns the PROFINET API
uint32 GetSubModuleNumber() const
Returns the sub module number
uint16 GetSubslotNumber() const
Returns the sub slot number
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
std::uint16_t uint16
The Arp unsigned integer type of 2 byte size.
Definition: PrimitiveTypes.hpp:31
@ System
System components used by the System, Device, Plc or Io domains.
Root namespace for the PLCnext API