PLCnext API Documentation  22.9.0.33
IPcpService.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/Interbus/Services/IdentifyResult.hpp"
10 #include "Arp/Io/Interbus/Services/InitiateResult.hpp"
11 #include "Arp/Io/Interbus/Services/InterbusResult.hpp"
12 #include "Arp/Io/Interbus/Services/ObjectAddress.hpp"
13 #include "Arp/Io/Interbus/Services/PcpServiceProxyFactory.hpp"
14 #include "Arp/Io/Interbus/Services/StatusResult.hpp"
15 #include "Arp/System/Rsc/Services/IRscService.hpp"
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 
29 class IPcpService : public IRscService
30 {
31 public: // typedefs
32  using Ptr = std::shared_ptr<IPcpService>;
33 
34 public: // construction/destruction
36  IPcpService(void) = default;
37 
38 public: // static policy operation
39  static IRscServiceProxyFactory& GetProxyFactory(void);
40 
41 public: // abstract operations
51  virtual InitiateResult PcpInitiate(uint8 communicationReference) = 0;
52 
65  virtual void PcpAbort(uint8 communicationReference, uint8 reasonCode, const std::vector<uint8>& abortDetail) = 0;
66 
79  virtual IdentifyResult PcpIdentify(uint8 communicationReference, uint8 invokeId) = 0;
80 
93  virtual StatusResult PcpStatus(uint8 communicationReference, uint8 invokeId) = 0;
94 
113  virtual InterbusResult PcpRead(uint8 communicationReference, uint8 invokeId, const ObjectAddress& pcpObject, std::vector<uint8>& data) = 0;
114 
133  virtual InterbusResult PcpWrite(uint8 communicationReference, uint8 invokeId, const ObjectAddress& pcpObject, const std::vector<uint8>& data) = 0;
134 };
135 
137 // inline methods of class IPcpService
138 inline IRscServiceProxyFactory& IPcpService::GetProxyFactory()
139 {
140  return PcpServiceProxyFactory::GetInstance();
141 }
142 
143 }}}} // end of namespace Arp::Io::Interbus::Services
Service to communicate to PCP devices
Definition: IPcpService.hpp:30
virtual StatusResult PcpStatus(uint8 communicationReference, uint8 invokeId)=0
Get current status of PCP device
virtual InitiateResult PcpInitiate(uint8 communicationReference)=0
Establish connection to a PCP device
IPcpService(void)=default
Constructs an IPcpService instance.
virtual void PcpAbort(uint8 communicationReference, uint8 reasonCode, const std::vector< uint8 > &abortDetail)=0
Abort connection to a PCP device
virtual InterbusResult PcpRead(uint8 communicationReference, uint8 invokeId, const ObjectAddress &pcpObject, std::vector< uint8 > &data)=0
Read data record from PCP device
virtual IdentifyResult PcpIdentify(uint8 communicationReference, uint8 invokeId)=0
Get device information of PCP device.
virtual InterbusResult PcpWrite(uint8 communicationReference, uint8 invokeId, const ObjectAddress &pcpObject, const std::vector< uint8 > &data)=0
Write data record to a PCP device
Result on PcpIdentify service
Definition: IdentifyResult.hpp:25
Contains result of a PcpInitiate service
Definition: InitiateResult.hpp:26
Contains error information of Interbus service.
Definition: InterbusResult.hpp:24
Contains parameter to address an object
Definition: ObjectAddress.hpp:24
Result on PcpStatus service
Definition: StatusResult.hpp:25
Base interface for all Rsc service interface.
Definition: IRscService.hpp:19
std::uint8_t uint8
The Arp unsigned integer type of 1 byte size.
Definition: PrimitiveTypes.hpp:27
Namespace for classes and interfaces for the Remote Service Call implementation
Definition: IRscReadEnumerator.hxx:10
Root namespace for the PLCnext API