PLCnext API Documentation  21.0.0.35466
AlarmInfo.hpp
1 //
3 // Copyright PHOENIX CONTACT Electronics GmbH
4 //
6 #pragma once
7 #include "Arp/System/Core/Arp.h"
8 #include "Arp/System/Rsc/Services/IRscSerializable.hpp"
9 #include "Arp/System/Rsc/Services/RscReader.hpp"
10 #include "Arp/System/Rsc/Services/RscWriter.hpp"
11 #include <vector>
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 
25 struct AlarmInfo : public IRscSerializable
26 {
30  boolean NewAlarmReceived = false;
31 
35  uint32 Id = 0;
36 
40  uint16 BlockType = 0;
41 
45  uint16 BlockLength = 0;
46 
50  uint16 BlockVersion = 0;
51 
55  uint16 AlarmType = 0;
56 
60  uint32 Api = 0;
61 
65  uint16 Slot = 0;
66 
70  uint16 Subslot = 0;
71 
75  uint32 ModuleId = 0;
76 
80  uint32 SubmoduleId = 0;
81 
85  uint16 AlarmSpecifier = 0;
86 
90  uint16 UserStructId = 0;
91 
95  std::vector<uint8> AlarmInfoItem;
96 
97  void Serialize(RscWriter& writer)const override
98  {
99  writer.Write(this->NewAlarmReceived);
100  writer.Write(this->Id);
101  writer.Write(this->BlockType);
102  writer.Write(this->BlockLength);
103  writer.Write(this->BlockVersion);
104  writer.Write(this->AlarmType);
105  writer.Write(this->Api);
106  writer.Write(this->Slot);
107  writer.Write(this->Subslot);
108  writer.Write(this->ModuleId);
109  writer.Write(this->SubmoduleId);
110  writer.Write(this->AlarmSpecifier);
111  writer.Write(this->UserStructId);
112  writer.WriteArray(this->AlarmInfoItem);
113  }
114 
115  void Deserialize(RscReader& reader)override
116  {
117  reader.Read(this->NewAlarmReceived);
118  reader.Read(this->Id);
119  reader.Read(this->BlockType);
120  reader.Read(this->BlockLength);
121  reader.Read(this->BlockVersion);
122  reader.Read(this->AlarmType);
123  reader.Read(this->Api);
124  reader.Read(this->Slot);
125  reader.Read(this->Subslot);
126  reader.Read(this->ModuleId);
127  reader.Read(this->SubmoduleId);
128  reader.Read(this->AlarmSpecifier);
129  reader.Read(this->UserStructId);
130  reader.ReadArray(this->AlarmInfoItem);
131  }
132 
133  static size_t GetFieldCount(void)
134  {
135  return 14;
136  }
137 };
138 
139 }}}}} // end of namespace Arp::Io::ProfinetStack::Controller::Services
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:173
void Deserialize(RscReader &reader) override
Deserializes the datatype. All fields of the datatype have to be deserialized in use of RscReader...
Definition: AlarmInfo.hpp:115
Reads data from Rsc
Definition: RscReader.hpp:23
Writes data to Rsc.
Definition: RscWriter.hpp:32
Namespace for classes and interfaces for the Remote Service Call implementation
Definition: IRscReadEnumerator.hxx:9
std::uint32_t uint32
The Arp unsigned integer type of 4 byte size.
Definition: PrimitiveTypes.hpp:35
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:199
T Read(void)
Reads an element of T from Rsc. With data tagging enabled RscType of T is validated.
Definition: RscReader.hpp:160
This structure contains all information about a received alarm. For more information read the PROFINE...
Definition: AlarmInfo.hpp:25
Marshalls structure or class data types. Serialize and Deserialize have to marshal fields in the same...
Definition: IRscSerializable.hpp:18
Root namespace for the PLCnext API
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:97
std::uint16_t uint16
The Arp unsigned integer type of 2 byte size.
Definition: PrimitiveTypes.hpp:31
void ReadArray(std::vector< T > &result)
Reads an array from Rsc. The read data is stored as std::vector.
Definition: RscReader.hpp:182
std::vector< uint8 > AlarmInfoItem
Alarm info item
Definition: AlarmInfo.hpp:95