PLCnext API Documentation  22.9.0.33
AlarmInfo.hpp
1 //
3 // Copyright PHOENIX CONTACT Electronics GmbH
4 //
6 #pragma once
7 #include "Arp/System/Core/Arp.h"
8 #include <vector>
9 #include "Arp/System/Rsc/Services/IRscSerializable.hpp"
10 #include "Arp/System/Rsc/Services/RscReader.hpp"
11 #include "Arp/System/Rsc/Services/RscWriter.hpp"
12 
13 // DO NOT MODIFY THIS FILE, THIS FILE IS AUTOGENERATED
14 
15 namespace Arp { namespace Io { namespace ProfinetStack { namespace Controller { namespace Services
16 {
17 
18 using namespace Arp;
19 using namespace Arp::System::Rsc::Services;
20 
26 {
27 public:
31  boolean NewAlarmReceived = false;
32 
36  uint32 Id = 0;
37 
41  uint16 BlockType = 0;
42 
46  uint16 BlockLength = 0;
47 
51  uint16 BlockVersion = 0;
52 
56  uint16 AlarmType = 0;
57 
61  uint32 Api = 0;
62 
66  uint16 Slot = 0;
67 
71  uint16 Subslot = 0;
72 
76  uint32 ModuleId = 0;
77 
81  uint32 SubmoduleId = 0;
82 
86  uint16 AlarmSpecifier = 0;
87 
91  uint16 UserStructId = 0;
92 
96  std::vector<uint8> AlarmInfoItem;
97 
98  void Serialize(RscWriter& writer)const override
99  {
100  writer.Write(this->NewAlarmReceived);
101  writer.Write(this->Id);
102  writer.Write(this->BlockType);
103  writer.Write(this->BlockLength);
104  writer.Write(this->BlockVersion);
105  writer.Write(this->AlarmType);
106  writer.Write(this->Api);
107  writer.Write(this->Slot);
108  writer.Write(this->Subslot);
109  writer.Write(this->ModuleId);
110  writer.Write(this->SubmoduleId);
111  writer.Write(this->AlarmSpecifier);
112  writer.Write(this->UserStructId);
113  writer.WriteArray(this->AlarmInfoItem);
114  }
115 
116  void Deserialize(RscReader& reader)override
117  {
118  reader.Read(this->NewAlarmReceived);
119  reader.Read(this->Id);
120  reader.Read(this->BlockType);
121  reader.Read(this->BlockLength);
122  reader.Read(this->BlockVersion);
123  reader.Read(this->AlarmType);
124  reader.Read(this->Api);
125  reader.Read(this->Slot);
126  reader.Read(this->Subslot);
127  reader.Read(this->ModuleId);
128  reader.Read(this->SubmoduleId);
129  reader.Read(this->AlarmSpecifier);
130  reader.Read(this->UserStructId);
131  reader.ReadArray(this->AlarmInfoItem);
132  }
133 
134  static constexpr size_t GetFieldCount(void)
135  {
136  return 14;
137  }
138 };
139 
140 }}}}} // end of namespace Arp::Io::ProfinetStack::Controller::Services
This structure contains all information about a received alarm. For more information read the PROFINE...
Definition: AlarmInfo.hpp:26
std::vector< uint8 > AlarmInfoItem
Alarm info item
Definition: AlarmInfo.hpp:96
void Deserialize(RscReader &reader) override
Deserializes the datatype. All fields of the datatype have to be deserialized in use of RscReader.
Definition: AlarmInfo.hpp:116
void Serialize(RscWriter &writer) const override
Serializes the datatype. All fields of the datatype have to be serialized in use of RscWriter.
Definition: AlarmInfo.hpp:98
Marshalls structure or class data types. Serialize and Deserialize have to marshal fields in the same...
Definition: IRscSerializable.hpp:19
Reads data from Rsc
Definition: RscReader.hpp:26
void ReadArray(std::vector< T > &result)
Reads an array from Rsc. The read data is stored as std::vector.
Definition: RscReader.hpp:187
T Read(void)
Reads an element of T from Rsc. With data tagging enabled RscType of T is validated.
Definition: RscReader.hpp:165
Writes data to Rsc.
Definition: RscWriter.hpp:31
void Write(const T &value)
Writes an element of T from Rsc. Datatag and format is determined deducted by type of T.
Definition: RscWriter.hpp:177
void WriteArray(const std::vector< T > &values)
Writes an array to Rsc. The data to write has to be stored in a std::vector.
Definition: RscWriter.hpp:203
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
Namespace for classes and interfaces for the Remote Service Call implementation
Definition: IRscReadEnumerator.hxx:10
Root namespace for the PLCnext API