PLCnext API Documentation  21.0.0.35466
AlarmPayload2.hpp
1 //
3 // Copyright PHOENIX CONTACT Electronics GmbH
4 //
6 
7 #pragma once
8 
9 
10 #include "Arp/System/Nm/SpecializedPayload.hpp"
11 
12 
13 namespace Arp { namespace System { namespace NmPayload { namespace Io { namespace ProfinetStack
14 {
15 
16 
20 {
21 public:
22  using SpecializedPayload::SpecializedPayload;
23 
43  AlarmPayload2(const String& deviceName, uint32 api, bool highPriority, uint16 alarmType, const String& alarmTypeName,
44  uint16 slotNumber, uint16 subslotNumber, uint32 moduleNumber, uint32 subModuleNumber, uint16 sequenceNumber,
45  bool isChannelDiagnosis, bool isManufacturerSpecificDiagnosis, bool isSubmoduleDiagnosisState,
46  bool isArDiagnosisState, uint16 userDataStructureIdentifier,
47  const String& userDataStructureIdentifierName, const String& userDataInfo);
48 
50  String GetDeviceName() const;
51 
53  uint32 GetApi() const;
54 
56  bool IsHighPriority() const;
57 
59  uint16 GetAlarmType() const;
60 
62  String GetAlarmTypeName() const;
63 
65  uint16 GetSlotNumber() const;
66 
68  uint16 GetSubslotNumber() const;
69 
71  uint32 GetModuleNumber() const;
72 
74  uint32 GetSubModuleNumber() const;
75 
77  uint16 GetSequenceNumber() const;
78 
80  bool GetIsChannelDiagnosis() const;
81 
85 
87  bool GetIsSubmoduleDiagnosisState() const;
88 
91  bool GetIsArDiagnosisState() const;
92 
95 
98 
100  String GetUserDataInfo() const;
101 
102 private:
103  // Do not change the order of the field initialization!
104  size_t indexDeviceName = this->AddField<String>();
105  size_t indexApi = this->AddField<uint32>();
106  size_t indexHighPriority = this->AddField<bool>();
107  size_t indexAlarmType = this->AddField<uint16>();
108  size_t indexAlarmTypeName = this->AddField<String>();
109  size_t indexSlotNumber = this->AddField<uint16>();
110  size_t indexSubslotNumber = this->AddField<uint16>();
111  size_t indexModuleNumber = this->AddField<uint32>();
112  size_t indexSubModuleNumber = this->AddField<uint32>();
113  size_t indexSequenceNumber = this->AddField<uint16>();
114  size_t indexIsChannelDiagnosis = this->AddField<bool>();
115  size_t indexIsManufacturerSpecificDiagnosis = this->AddField<bool>();
116  size_t indexIsSubmoduleDiagnosisState = this->AddField<bool>();
117  size_t indexIsArDiagnosisState = this->AddField<bool>();
118  size_t indexuserDataStructureIdentifier = this->AddField<uint16>();
119  size_t indexuserDataStructureIdentifierName = this->AddField<String>();
120  size_t indexUserDataInfo = this->AddField<String>();
121 };
122 
123 }}}}} // namespace Arp::System::NmPayload::Io::ProfinetStack
uint16 GetUserDataStructureIdentifier() const
Returns the User Data Structure Identifier
uint32 GetSubModuleNumber() const
Returns the sub module number
uint16 GetSequenceNumber() const
Returns the sequence number
std::uint32_t uint32
The Arp unsigned integer type of 4 byte size.
Definition: PrimitiveTypes.hpp:35
bool GetIsChannelDiagnosis() const
Returns true if alarm is a channel diagnosis
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
Payload class for a Profinet alarm
Definition: AlarmPayload2.hpp:19
uint16 GetSubslotNumber() const
Returns the sub slot number
bool GetIsManufacturerSpecificDiagnosis() const
Return s true if alarm is manufacturer specific diagnosis
uint32 GetApi() const
Returns the PROFINET API
String GetAlarmTypeName() const
Returns the alarm type as string
Base class for custom Payload classes
Definition: SpecializedPayload.hpp:42
uint32 GetModuleNumber() const
Returns the module number
uint16 GetSlotNumber() const
Returns the slot number
String GetUserDataInfo() const
Returns the User Data Structure as text
uint16 GetAlarmType() const
Returns the alarm type
bool IsHighPriority() const
Returns true if alarm is high priority
Root namespace for the PLCnext API
std::uint16_t uint16
The Arp unsigned integer type of 2 byte size.
Definition: PrimitiveTypes.hpp:31
bool GetIsArDiagnosisState() const
Return s true if alarm is diagnostic information of the application reference
String GetUserDataStructureIdentifierName() const
Returns the User Data Structure Identifier as string
System components used by the System, Device, Plc or Io domains.
bool GetIsSubmoduleDiagnosisState() const
Return s true if alarm is submodule diagnosis
String GetDeviceName() const
Returns the Profinet device name