PLCnext API Documentation  22.3.0.20
IPcpService.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/IRscService.hpp"
9 #include "PcpServiceProxyFactory.hpp"
10 #include "IdentifyResult.hpp"
11 #include "InitiateResult.hpp"
12 #include "InterbusResult.hpp"
13 #include "ObjectAddress.hpp"
14 #include "StatusResult.hpp"
15 #include <vector>
16 
17 // DO NOT MODIFY THIS FILE, THIS FILE IS AUTOGENERATED BY IPcpService.cs
18 
19 namespace Arp { namespace Io { namespace Interbus { namespace Services
20 {
21 
22 using namespace Arp;
23 using namespace Arp::System::Rsc::Services;
24 
28 class IPcpService : public IRscService
29 {
30 public: // typedefs
31  using Ptr = std::shared_ptr<IPcpService>;
32 
33 public: // construction/destruction
35  IPcpService(void) = default;
36 
37 public: // static policy operation
38  static IRscServiceProxyFactory& GetProxyFactory(void);
39 
40 public: // abstract operations
50  virtual InitiateResult PcpInitiate(uint8 communicationReference) = 0;
51 
64  virtual void PcpAbort(uint8 communicationReference, uint8 reasonCode, const std::vector<uint8>& abortDetail) = 0;
65 
78  virtual IdentifyResult PcpIdentify(uint8 communicationReference, uint8 invokeId) = 0;
79 
92  virtual StatusResult PcpStatus(uint8 communicationReference, uint8 invokeId) = 0;
93 
112  virtual InterbusResult PcpRead(uint8 communicationReference, uint8 invokeId, const ObjectAddress& pcpObject, std::vector<uint8>& data) = 0;
113 
132  virtual InterbusResult PcpWrite(uint8 communicationReference, uint8 invokeId, const ObjectAddress& pcpObject, const std::vector<uint8>& data) = 0;
133 };
134 
136 // inline methods of class IPcpService
137 inline IRscServiceProxyFactory& IPcpService::GetProxyFactory()
138 {
139  return PcpServiceProxyFactory::GetInstance();
140 }
141 
142 }}}} // end of namespace Arp::Io::Interbus::Services
Namespace for classes and interfaces for the Remote Service Call implementation
Definition: IRscReadEnumerator.hxx:9
Result on PcpStatus service
Definition: StatusResult.hpp:24
Service to communicate to PCP devices
Definition: IPcpService.hpp:28
Contains error information of Interbus service.
Definition: InterbusResult.hpp:23
Contains result of a PcpInitiate service
Definition: InitiateResult.hpp:25
Result on PcpIdentify service
Definition: IdentifyResult.hpp:24
std::uint8_t uint8
The Arp unsigned integer type of 1 byte size.
Definition: PrimitiveTypes.hpp:27
Root namespace for the PLCnext API
Base interface for all Rsc service interface.
Definition: IRscService.hpp:18
Contains parameter to address an object
Definition: ObjectAddress.hpp:23