PLCnext API Documentation 25.0.2.69
AlarmPayload2.hpp
1
2//
3// Copyright Phoenix Contact GmbH & Co. KG
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
21class ARP_CXX_SYMBOL_EXPORT AlarmPayload2 : public Arp::System::Nm::SpecializedPayload<AlarmPayload2>
22{
23public:
25 using ArgumentsType = std::tuple<const char*, uint32, bool, uint16, const char*, uint16, uint16, uint32, uint32,
26 uint16, bool, bool, bool, bool, uint16, const char*, const char*>;
28 explicit AlarmPayload2(const ArgumentsType& args);
29 AlarmPayload2(const String& deviceName, uint32 api, bool highPriority, uint16 alarmType, const String& alarmTypeName,
30 uint16 slotNumber, uint16 subslotNumber, uint32 moduleNumber, uint32 subModuleNumber, uint16 sequenceNumber,
31 bool isChannelDiagnosis, bool isManufacturerSpecificDiagnosis, bool isSubmoduleDiagnosisState,
32 bool isArDiagnosisState, uint16 userDataStructureIdentifier,
33 const String& userDataStructureIdentifierName, const String& userDataInfo);
34 String GetDeviceName() const;
35 uint32 GetApi() const;
36 bool IsHighPriority() const;
37 uint16 GetAlarmType() const;
38 String GetAlarmTypeName() const;
39 uint16 GetSlotNumber() const;
40 uint16 GetSubslotNumber() const;
41 uint32 GetModuleNumber() const;
42 uint32 GetSubModuleNumber() const;
43 uint16 GetSequenceNumber() const;
44 bool GetIsChannelDiagnosis() const;
45 bool GetIsManufacturerSpecificDiagnosis() const;
46 bool GetIsSubmoduleDiagnosisState() const;
47 bool GetIsArDiagnosisState() const;
48 uint16 GetUserDataStructureIdentifier() const;
49 String GetUserDataStructureIdentifierName() const;
50 String GetUserDataInfo() const;
51
52private:
53 // Do not change the order of the field initialization!
54 size_t indexDeviceName = this->AddField<String>();
55 size_t indexApi = this->AddField<uint32>();
56 size_t indexHighPriority = this->AddField<bool>();
57 size_t indexAlarmType = this->AddField<uint16>();
58 size_t indexAlarmTypeName = this->AddField<String>();
59 size_t indexSlotNumber = this->AddField<uint16>();
60 size_t indexSubslotNumber = this->AddField<uint16>();
61 size_t indexModuleNumber = this->AddField<uint32>();
62 size_t indexSubModuleNumber = this->AddField<uint32>();
63 size_t indexSequenceNumber = this->AddField<uint16>();
64 size_t indexIsChannelDiagnosis = this->AddField<bool>();
65 size_t indexIsManufacturerSpecificDiagnosis = this->AddField<bool>();
66 size_t indexIsSubmoduleDiagnosisState = this->AddField<bool>();
67 size_t indexIsArDiagnosisState = this->AddField<bool>();
68 size_t indexuserDataStructureIdentifier = this->AddField<uint16>();
69 size_t indexuserDataStructureIdentifierName = this->AddField<String>();
70 size_t indexUserDataInfo = this->AddField<String>();
71};
72
73}}}}} // namespace Arp::System::NmPayload::Io::ProfinetStack
This class represents the Arp String. The implementation is based on std::string.
Definition: String.hpp:39
Payload class for a Profinet alarm
Definition: AlarmPayload2.hpp:22
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:26
Base class for custom Payload classes
Definition: SpecializedPayload.hpp:44
SpecializedPayload(const Notification &notification)
Creates a view on a Notification object
Definition: SpecializedPayload.hpp:211
std::uint32_t uint32
The Arp unsigned integer type of 4 byte size.
Definition: PrimitiveTypes.hpp:33
std::uint16_t uint16
The Arp unsigned integer type of 2 byte size.
Definition: PrimitiveTypes.hpp:29
Root namespace for the PLCnext API