PLCnext API Documentation  22.9.0.33
ModuleDifference.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/Io/ProfinetStack/Controller/Services/SubmoduleDifference.hpp"
10 #include "Arp/System/Rsc/Services/IRscSerializable.hpp"
11 #include "Arp/System/Rsc/Services/RscReader.hpp"
12 #include "Arp/System/Rsc/Services/RscWriter.hpp"
13 
14 // DO NOT MODIFY THIS FILE, THIS FILE IS AUTOGENERATED
15 
16 namespace Arp { namespace Io { namespace ProfinetStack { namespace Controller { namespace Services
17 {
18 
19 using namespace Arp;
20 using namespace Arp::System::Rsc::Services;
21 
26 {
27 public:
31  uint16 Slot = 0;
32 
36  uint32 IdentNumber = 0;
37 
49  uint16 State = 0;
50 
54  std::vector<SubmoduleDifference> SubmoduleDifferences;
55 
56  void Serialize(RscWriter& writer)const override
57  {
58  writer.Write(this->Slot);
59  writer.Write(this->IdentNumber);
60  writer.Write(this->State);
61  writer.WriteArray(this->SubmoduleDifferences);
62  }
63 
64  void Deserialize(RscReader& reader)override
65  {
66  reader.Read(this->Slot);
67  reader.Read(this->IdentNumber);
68  reader.Read(this->State);
69  reader.ReadArray(this->SubmoduleDifferences);
70  }
71 
72  static constexpr size_t GetFieldCount(void)
73  {
74  return 4;
75  }
76 };
77 
78 }}}}} // end of namespace Arp::Io::ProfinetStack::Controller::Services
Module data with differences
Definition: ModuleDifference.hpp:26
void Serialize(RscWriter &writer) const override
Serializes the datatype. All fields of the datatype have to be serialized in use of RscWriter.
Definition: ModuleDifference.hpp:56
void Deserialize(RscReader &reader) override
Deserializes the datatype. All fields of the datatype have to be deserialized in use of RscReader.
Definition: ModuleDifference.hpp:64
std::vector< SubmoduleDifference > SubmoduleDifferences
Configured submodules with differences
Definition: ModuleDifference.hpp:54
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