EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  <20192020  2021  2022  2023  2024  Index 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  <20192020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: Re: Basic PVAccess question
From: Marty Kraimer via Tech-talk <[email protected]>
To: [email protected]
Date: Wed, 27 Feb 2019 09:53:37 -0500
On 2/27/19 6:27 AM, will.rogers--- via Tech-talk wrote:
I am looking at the exampleCPP repo for EPICS7.


When I run helloRPC I can use pvcall and p4p as a client successfully.


When I run pvDatabaseRPC, I can't use either, and I get the following message:

ChannelRPC not supported


HelloClient.cpp (helloRPC) and positionClient.cpp (pvDatabaseRPC) both use an RPCClient to communicate the server.


I think I don't understand fully. Can anyone clear this up for me?


Cheers,

Will


Let me answer helloRPC first.
This is a really simple example of using channelRPC.
It has a server that only implements channelRPC and nothing else, i. e. it is not an IOC.
Thus channelGet, channelPut, and channelPutGet requests will all fail.
It is started as follows:

mrk> pwd
/home/epicsv4/masterCPP/exampleCPP/helloRPC
mrk> bin/linux-x86_64/HelloService
pvAccess Server v6.1.0

It has a client that only issues a channelRPC request.
It is run via
mrk> pwd
/home/epicsv4/masterCPP/exampleCPP/helloRPC
mrk> bin/linux-x86_64/HelloClient
Hello anonymous
mrk>
pvDatabaseRPC is a much bigger example
Since you are running the example look at exampleCPP/documentation.
It has documantation about all the examples.
In particular look at exampleCPP.html and pvDatabaseRPC.html.

pvDatabaseRPC.html says the following:

pvDatabaseRPC is an example of a pvAccess server that has a PVRecord that supports Channel RPC as well as the usual operations: Channel Get, Put and Monitor and get introspection data.

It illustrates synchronous and asynchronous RPC services, selecting services based on the supplied pvRequest and using EPICS V4 to talk to an existing object which has no knowledge of EPICS and call its methods, so creating distributed objects.

It represents a device which has a 2D position setpoint and readback as well as a state. The device can be controlled through a client using RPC commands to move through a sequence of points as well as conventionally by putting to the setpoint.


Also have you seen

https://mrkraimer.github.io/website/developerGuide/developerGuide.html

I hope this help.


Marty Kraimer




References:
Basic PVAccess question will.rogers--- via Tech-talk

Navigate by Date:
Prev: Basic PVAccess question will.rogers--- via Tech-talk
Next: EPICS support for walter + bai Testing Machines tom.cobb--- via Tech-talk
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  <20192020  2021  2022  2023  2024 
Navigate by Thread:
Prev: Basic PVAccess question will.rogers--- via Tech-talk
Next: Re: Basic PVAccess question Marty Kraimer via Tech-talk
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  <20192020  2021  2022  2023  2024 
ANJ, 01 Mar 2019 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·